ieee1394: nodemgr: do not peek into struct semaphore also revert patch "frv: ieee1394 is borken on frv" Signed-off-by: Stefan Richter Index: linux-2.6.17-mm1/drivers/ieee1394/nodemgr.c =================================================================== --- linux-2.6.17-mm1.orig/drivers/ieee1394/nodemgr.c 2006-06-23 17:59:35.000000000 +0200 +++ linux-2.6.17-mm1/drivers/ieee1394/nodemgr.c 2006-06-23 19:12:30.000000000 +0200 @@ -8,6 +8,7 @@ * directory of the kernel sources for details. */ +#include #include #include #include @@ -326,10 +327,12 @@ static ssize_t fw_show_ne_bus_options(st static DEVICE_ATTR(bus_options,S_IRUGO,fw_show_ne_bus_options,NULL); +/* tlabels_free, tlabels_allocations, tlabels_mask are read non-atomically + * here, therefore displayed values may be occasionally wrong. */ static ssize_t fw_show_ne_tlabels_free(struct device *dev, struct device_attribute *attr, char *buf) { struct node_entry *ne = container_of(dev, struct node_entry, device); - return sprintf(buf, "%d\n", atomic_read(&ne->tpool->count.count) + 1); + return sprintf(buf, "%d\n", 64 - bitmap_weight(ne->tpool->pool, 64)); } static DEVICE_ATTR(tlabels_free,S_IRUGO,fw_show_ne_tlabels_free,NULL); Index: linux-2.6.17-mm1/drivers/ieee1394/Kconfig =================================================================== --- linux-2.6.17-mm1.orig/drivers/ieee1394/Kconfig 2006-06-23 17:58:03.000000000 +0200 +++ linux-2.6.17-mm1/drivers/ieee1394/Kconfig 2006-06-23 19:13:17.000000000 +0200 @@ -4,7 +4,7 @@ menu "IEEE 1394 (FireWire) support" config IEEE1394 tristate "IEEE 1394 (FireWire) support" - depends on (PCI || BROKEN) && (BROKEN || !FRV) + depends on PCI || BROKEN select NET help IEEE 1394 describes a high performance serial bus, which is also