diff -uprN -X dontdiff linux-2.6.12-rc4/drivers/base/core.c linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/base/core.c --- linux-2.6.12-rc4/drivers/base/core.c 2005-05-07 03:37:15.000000000 -0400 +++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr/drivers/base/core.c 2005-05-16 20:50:02.000000000 -0400 @@ -41,7 +41,7 @@ dev_attr_show(struct kobject * kobj, str ssize_t ret = 0; if (dev_attr->show) - ret = dev_attr->show(dev, buf); + ret = dev_attr->show(dev, dev_attr, buf); return ret; } @@ -54,7 +54,7 @@ dev_attr_store(struct kobject * kobj, st ssize_t ret = 0; if (dev_attr->store) - ret = dev_attr->store(dev, buf, count); + ret = dev_attr->store(dev, dev_attr, buf, count); return ret; } diff -uprN -X dontdiff linux-2.6.12-rc4/include/linux/device.h linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/device.h --- linux-2.6.12-rc4/include/linux/device.h 2005-05-07 03:37:24.000000000 -0400 +++ linux-2.6.12-rc4-sysfsdyncallback-deviceattr/include/linux/device.h 2005-05-16 20:58:43.000000000 -0400 @@ -335,8 +335,9 @@ extern void driver_attach(struct device_ struct device_attribute { struct attribute attr; - ssize_t (*show)(struct device * dev, char * buf); - ssize_t (*store)(struct device * dev, const char * buf, size_t count); + ssize_t (*show)(struct device * dev, struct device_attribute *attr, char * buf); + ssize_t (*store)(struct device * dev, struct device_attribute *attr, + const char * buf, size_t count); }; #define DEVICE_ATTR(_name,_mode,_show,_store) \