Hello community, here is the log from the commit of package hwinfo checked in at Fri Feb 9 16:35:42 CET 2007. -------- --- hwinfo/hwinfo.changes 2007-01-26 15:05:51.000000000 +0100 +++ /mounts/work_src_done/STABLE/hwinfo/hwinfo.changes 2007-02-09 15:46:26.000000000 +0100 @@ -1,0 +2,11 @@ +Fri Feb 9 15:46:18 CET 2007 - snwint@suse.de + +- use dpt_i2o, not i2o (#176735) + +------------------------------------------------------------------- +Fri Feb 9 14:49:42 CET 2007 - snwint@suse.de + +- be careful reading MP config table to make Xen happy (#154681) +- ensure network/hardware sysfs ID consistency (bug #168492) + +------------------------------------------------------------------- Old: ---- hwinfo-13.19.tar.bz2 New: ---- hwinfo-13.21.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hwinfo.spec ++++++ --- /var/tmp/diff_new_pack.CH1528/_old 2007-02-09 16:34:52.000000000 +0100 +++ /var/tmp/diff_new_pack.CH1528/_new 2007-02-09 16:34:52.000000000 +0100 @@ -1,5 +1,5 @@ # -# spec file for package hwinfo (Version 13.19) +# spec file for package hwinfo (Version 13.21) # # Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -20,9 +20,9 @@ PreReq: /sbin/ldconfig %insserv_prereq %fillup_prereq Autoreqprov: on Summary: Hardware Library -Version: 13.19 +Version: 13.21 Release: 1 -Source: hwinfo-13.19.tar.bz2 +Source: hwinfo-13.21.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -89,6 +89,11 @@ %doc doc/libhd/html %changelog -n hwinfo +* Fri Feb 09 2007 - snwint@suse.de +- use dpt_i2o, not i2o (#176735) +* Fri Feb 09 2007 - snwint@suse.de +- be careful reading MP config table to make Xen happy (#154681) +- ensure network/hardware sysfs ID consistency (bug #168492) * Fri Jan 26 2007 - snwint@suse.de - there are usb tapes (#222978) - apple vs. pc kbd layout issue solved for ppc (#233968) ++++++ hwinfo-13.19.tar.bz2 -> hwinfo-13.21.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.19/Changelog new/hwinfo-13.21/Changelog --- old/hwinfo-13.19/Changelog 2007-01-26 15:05:08.000000000 +0100 +++ new/hwinfo-13.21/Changelog 2007-02-09 15:45:52.000000000 +0100 @@ -1,3 +1,10 @@ +9/2/2007: v13.21 + - use dpt_i2o, not i2o (#176735) + +9/2/2007: v13.20 + - be careful reading MP config table to make Xen happy (#154681) + - ensure network/hardware sysfs ID consistency (bug #168492) + 26/1/2007: v13.19 - there are usb tapes (#222978) - apple vs. pc kbd layout issue solved for ppc (#233968) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.19/src/hd/bios.c new/hwinfo-13.21/src/hd/bios.c --- old/hwinfo-13.19/src/hd/bios.c 2006-10-11 15:22:57.000000000 +0200 +++ new/hwinfo-13.21/src/hd/bios.c 2007-01-31 14:27:04.000000000 +0100 @@ -94,6 +94,7 @@ static void add_mouse_info(hd_data_t *hd_data, bios_info_t *bt); static unsigned char crc(unsigned char *mem, unsigned len); static int get_smp_info(hd_data_t *hd_data, memory_range_t *mem, smp_info_t *smp); +static unsigned parse_mpconfig_len(hd_data_t *hd_data, memory_range_t *mem); static void parse_mpconfig(hd_data_t *hd_data, memory_range_t *mem, smp_info_t *smp); static int get_bios32_info(hd_data_t *hd_data, memory_range_t *mem, bios32_info_t *bios32); @@ -384,10 +385,16 @@ if(bt->smp.ok && bt->smp.mpconfig) { mem.start = bt->smp.mpconfig; - mem.size = 1 << 16; + mem.size = 0x40; mem.data = NULL; read_memory(hd_data, &mem); - parse_mpconfig(hd_data, &mem, &bt->smp); + u = parse_mpconfig_len(hd_data, &mem); + ADD2LOG(" MP config table size: %u\n", u); + if(u > 0x40) { + mem.size = u < (1 << 16) ? u : (1 << 16); + read_memory(hd_data, &mem); + } + if(u) parse_mpconfig(hd_data, &mem, &bt->smp); mem.data = free_mem(mem.data); } @@ -967,6 +974,19 @@ } +unsigned parse_mpconfig_len(hd_data_t *hd_data, memory_range_t *mem) +{ + unsigned len = 0; + + if(*(unsigned *) (mem->data) == 0x504d4350) { /* "PCMP" */ + len = mem->data[0x04] + (mem->data[0x05] << 8) + + mem->data[0x28] + (mem->data[0x29] << 8); + } + + return len; +} + + void parse_mpconfig(hd_data_t *hd_data, memory_range_t *mem, smp_info_t *smp) { unsigned cfg_len, xcfg_len; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.19/src/hd/s390.c new/hwinfo-13.21/src/hd/s390.c --- old/hwinfo-13.19/src/hd/s390.c 2006-08-29 16:22:21.000000000 +0200 +++ new/hwinfo-13.21/src/hd/s390.c 2007-02-09 14:48:18.000000000 +0100 @@ -35,6 +35,7 @@ char dirname[128]; char linkname[128]; int virtual_machine=0; + int linkstrip; unsigned int devtype=0,devmod=0,cutype=0,cumod=0; @@ -132,8 +133,6 @@ devmod = strtol(index(get_sysfs_attr(BUSNAME, curdev->d_name, "devtype"), '/') + 1, NULL, 16); readonly = atoi(get_sysfs_attr(BUSNAME, curdev->d_name, "readonly")?:"0"); - sprintf(attrname, "/sys/bus/" BUSNAME "/devices/%s", curdev->d_name); - res->io.type=res_io; res->io.access=readonly?acc_ro:acc_rw; res->io.base=strtol(rindex(curdev->d_name,'.')+1,NULL,16); @@ -156,6 +155,18 @@ case 0x3088: /* CU3088 (CTC, LCS) */ res->io.range++; } + + if(res->io.range > 1) { + sprintf(attrname, "/sys/bus/" BUSNAME "/devices/%s/group_device", curdev->d_name); + memset(linkname,0,128); + if(readlink(attrname, linkname, 127) == -1) { + sprintf(attrname, "/sys/bus/" BUSNAME "/devices/%s", curdev->d_name); + linkstrip = 6; + } else linkstrip = 9; + } else { + linkstrip = 6; + sprintf(attrname, "/sys/bus/" BUSNAME "/devices/%s", curdev->d_name); + } hd=add_hd_entry(hd_data,__LINE__,0); add_res_entry(&hd->res,res); @@ -164,16 +175,17 @@ hd->sub_device.id=MAKE_ID(TAG_SPECIAL,devtype); hd->bus.id=bus_ccw; - /* whether resolving the symlink makes sense or not is debatable, but libsysfs did it, so it - is consistent with earlier versions of this code */ - memset(linkname,0,128); + /* whether resolving the symlink in the non-grouped device case makes sense or not is debatable, but libsysfs did it, so it + is consistent with earlier versions of this code. in the grouped device case it is necessary to obtain a sysfs id that + is consistent with net.c which resolves /sys/class/net/<ifname>/device. */ + memset(linkname, 0, 128); if(readlink(attrname,linkname,127) == -1) hd->sysfs_device_link = new_str(hd_sysfs_id(attrname)); else - hd->sysfs_device_link = new_str(hd_sysfs_id(linkname+6)); + hd->sysfs_device_link = new_str(hd_sysfs_id(linkname+linkstrip)); hd->sysfs_id = new_str(hd->sysfs_device_link); - hd->sysfs_bus_id = new_str(strrchr(attrname,'/')+1); + hd->sysfs_bus_id = new_str(curdev->d_name); if(cutypes[res->io.base]==-2) /* virtual reader */ { diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.19/src/ids/src/storage new/hwinfo-13.21/src/ids/src/storage --- old/hwinfo-13.19/src/ids/src/storage 2006-04-25 16:28:33.000000000 +0200 +++ new/hwinfo-13.21/src/ids/src/storage 2007-02-09 15:45:19.000000000 +0100 @@ -317,16 +317,23 @@ &device.id special 0x0040 +driver.module.modprobe swim3 -# modalias, #129301 +# modalias, #129301, #176735 baseclass.id 0x00e &subclass.id 0x00 -|vendor.id pci 0x1044 -&device.id pci 0xa511 |vendor.id pci 0x8086 &device.id pci 0x1962 &subvendor.id pci 0x105a +driver.module.modprobe i2o_block + vendor.id pci 0x1044 +&device.id pci 0xa501 ++driver.module.modprobe dpt_i2o + + vendor.id pci 0x1044 +&device.id pci 0xa511 ++driver.module.modprobe dpt_i2o ++driver.module.modprobe i2o_block + # scsi/aacraid/linit.c vendor.id pci 0x1028 &device.id pci 0x0001 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.19/VERSION new/hwinfo-13.21/VERSION --- old/hwinfo-13.19/VERSION 2007-01-26 14:42:14.000000000 +0100 +++ new/hwinfo-13.21/VERSION 2007-02-09 15:45:29.000000000 +0100 @@ -1 +1 @@ -13.19 +13.21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org