+ revert-gregkh-driver-input-device.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     revert gregkh-driver-input-device

has been added to the -mm tree.  Its filename is

     revert-gregkh-driver-input-device.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: revert gregkh-driver-input-device
From: Andrew Morton <akpm@xxxxxxxx>

Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 drivers/hwmon/hdaps.c              |    2 
 drivers/input/evdev.c              |   12 ++
 drivers/input/input.c              |  111 +++++++++++----------------
 drivers/input/joydev.c             |   12 ++
 drivers/input/keyboard/atkbd.c     |    2 
 drivers/input/misc/pcspkr.c        |    2 
 drivers/input/misc/wistron_btns.c  |    2 
 drivers/input/mouse/psmouse-base.c |    2 
 drivers/input/mousedev.c           |   18 ++--
 drivers/input/tsdev.c              |   12 ++
 drivers/usb/input/acecad.c         |    2 
 drivers/usb/input/aiptek.c         |    2 
 drivers/usb/input/appletouch.c     |    2 
 drivers/usb/input/ati_remote.c     |    2 
 drivers/usb/input/ati_remote2.c    |    2 
 drivers/usb/input/hid-input.c      |    2 
 drivers/usb/input/itmtouch.c       |    2 
 drivers/usb/input/kbtab.c          |    2 
 drivers/usb/input/keyspan_remote.c |    2 
 drivers/usb/input/mtouchusb.c      |    2 
 drivers/usb/input/powermate.c      |    2 
 drivers/usb/input/touchkitusb.c    |    2 
 drivers/usb/input/usbkbd.c         |    2 
 drivers/usb/input/usbmouse.c       |    2 
 drivers/usb/input/usbtouchscreen.c |    2 
 drivers/usb/input/xpad.c           |    2 
 drivers/usb/input/yealink.c        |    2 
 include/linux/input.h              |    9 +-
 28 files changed, 114 insertions(+), 104 deletions(-)

diff -puN drivers/hwmon/hdaps.c~revert-gregkh-driver-input-device drivers/hwmon/hdaps.c
--- a/drivers/hwmon/hdaps.c~revert-gregkh-driver-input-device
+++ a/drivers/hwmon/hdaps.c
@@ -580,7 +580,7 @@ static int __init hdaps_init(void)
 
 	/* initialize the input class */
 	hdaps_idev->name = "hdaps";
-	hdaps_idev->d.parent = &pdev->dev;
+	hdaps_idev->cdev.dev = &pdev->dev;
 	hdaps_idev->evbit[0] = BIT(EV_ABS);
 	input_set_abs_params(hdaps_idev, ABS_X,
 			-256, 256, HDAPS_INPUT_FUZZ, HDAPS_INPUT_FLAT);
diff -puN drivers/input/evdev.c~revert-gregkh-driver-input-device drivers/input/evdev.c
--- a/drivers/input/evdev.c~revert-gregkh-driver-input-device
+++ a/drivers/input/evdev.c
@@ -622,6 +622,7 @@ static struct file_operations evdev_fops
 static struct input_handle *evdev_connect(struct input_handler *handler, struct input_dev *dev, struct input_device_id *id)
 {
 	struct evdev *evdev;
+	struct class_device *cdev;
 	int minor;
 
 	for (minor = 0; minor < EVDEV_MINORS && evdev_table[minor]; minor++);
@@ -646,9 +647,13 @@ static struct input_handle *evdev_connec
 
 	evdev_table[minor] = evdev;
 
-	device_create(&input_class, &dev->d,
+	cdev = class_device_create(&input_class, &dev->cdev,
 			MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + minor),
-			evdev->name);
+			dev->cdev.dev, evdev->name);
+
+	/* temporary symlink to keep userspace happy */
+	sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj,
+			  evdev->name);
 
 	return &evdev->handle;
 }
@@ -658,7 +663,8 @@ static void evdev_disconnect(struct inpu
 	struct evdev *evdev = handle->private;
 	struct evdev_list *list;
 
-	device_destroy(&input_class,
+	sysfs_remove_link(&input_class.subsys.kset.kobj, evdev->name);
+	class_device_destroy(&input_class,
 			MKDEV(INPUT_MAJOR, EVDEV_MINOR_BASE + evdev->minor));
 	evdev->exist = 0;
 
diff -puN drivers/input/input.c~revert-gregkh-driver-input-device drivers/input/input.c
--- a/drivers/input/input.c~revert-gregkh-driver-input-device
+++ a/drivers/input/input.c
@@ -426,7 +426,7 @@ static void input_seq_print_bitmap(struc
 static int input_devices_seq_show(struct seq_file *seq, void *v)
 {
 	struct input_dev *dev = container_of(v, struct input_dev, node);
-	const char *path = kobject_get_path(&dev->d.kobj, GFP_KERNEL);
+	const char *path = kobject_get_path(&dev->cdev.kobj, GFP_KERNEL);
 	struct input_handle *handle;
 
 	seq_printf(seq, "I: Bus=%04x Vendor=%04x Product=%04x Version=%04x\n",
@@ -581,9 +581,7 @@ static inline void input_proc_exit(void)
 #endif
 
 #define INPUT_DEV_STRING_ATTR_SHOW(name)					\
-static ssize_t input_dev_show_##name(struct device *dev,			\
-				     struct device_attribute *attr,		\
-				     char *buf)					\
+static ssize_t input_dev_show_##name(struct class_device *dev, char *buf)	\
 {										\
 	struct input_dev *input_dev = to_input_dev(dev);			\
 	int retval;								\
@@ -599,7 +597,7 @@ static ssize_t input_dev_show_##name(str
 										\
 	return retval;								\
 }										\
-static DEVICE_ATTR(name, S_IRUGO, input_dev_show_##name, NULL);
+static CLASS_DEVICE_ATTR(name, S_IRUGO, input_dev_show_##name, NULL);
 
 INPUT_DEV_STRING_ATTR_SHOW(name);
 INPUT_DEV_STRING_ATTR_SHOW(phys);
@@ -653,9 +651,7 @@ static int input_print_modalias(char *bu
 	return len;
 }
 
-static ssize_t input_dev_show_modalias(struct device *dev,
-				       struct device_attribute *attr,
-				       char *buf)
+static ssize_t input_dev_show_modalias(struct class_device *dev, char *buf)
 {
 	struct input_dev *id = to_input_dev(dev);
 	ssize_t len;
@@ -664,13 +660,13 @@ static ssize_t input_dev_show_modalias(s
 
 	return min_t(int, len, PAGE_SIZE);
 }
-static DEVICE_ATTR(modalias, S_IRUGO, input_dev_show_modalias, NULL);
+static CLASS_DEVICE_ATTR(modalias, S_IRUGO, input_dev_show_modalias, NULL);
 
 static struct attribute *input_dev_attrs[] = {
-	&dev_attr_name.attr,
-	&dev_attr_phys.attr,
-	&dev_attr_uniq.attr,
-	&dev_attr_modalias.attr,
+	&class_device_attr_name.attr,
+	&class_device_attr_phys.attr,
+	&class_device_attr_uniq.attr,
+	&class_device_attr_modalias.attr,
 	NULL
 };
 
@@ -679,14 +675,12 @@ static struct attribute_group input_dev_
 };
 
 #define INPUT_DEV_ID_ATTR(name)							\
-static ssize_t input_dev_show_id_##name(struct device *dev,			\
-					struct device_attribute *attr,		\
-					char *buf)				\
+static ssize_t input_dev_show_id_##name(struct class_device *dev, char *buf)	\
 {										\
 	struct input_dev *input_dev = to_input_dev(dev);			\
 	return scnprintf(buf, PAGE_SIZE, "%04x\n", input_dev->id.name);		\
 }										\
-static DEVICE_ATTR(name, S_IRUGO, input_dev_show_id_##name, NULL);
+static CLASS_DEVICE_ATTR(name, S_IRUGO, input_dev_show_id_##name, NULL);
 
 INPUT_DEV_ID_ATTR(bustype);
 INPUT_DEV_ID_ATTR(vendor);
@@ -694,10 +688,10 @@ INPUT_DEV_ID_ATTR(product);
 INPUT_DEV_ID_ATTR(version);
 
 static struct attribute *input_dev_id_attrs[] = {
-	&dev_attr_bustype.attr,
-	&dev_attr_vendor.attr,
-	&dev_attr_product.attr,
-	&dev_attr_version.attr,
+	&class_device_attr_bustype.attr,
+	&class_device_attr_vendor.attr,
+	&class_device_attr_product.attr,
+	&class_device_attr_version.attr,
 	NULL
 };
 
@@ -727,16 +721,14 @@ static int input_print_bitmap(char *buf,
 }
 
 #define INPUT_DEV_CAP_ATTR(ev, bm)						\
-static ssize_t input_dev_show_cap_##bm(struct device *dev,			\
-				       struct device_attribute *attr,		\
-				       char *buf)				\
+static ssize_t input_dev_show_cap_##bm(struct class_device *dev, char *buf)	\
 {										\
 	struct input_dev *input_dev = to_input_dev(dev);			\
 	int len = input_print_bitmap(buf, PAGE_SIZE,				\
 				     input_dev->bm##bit, ev##_MAX, 1);		\
 	return min_t(int, len, PAGE_SIZE);					\
 }										\
-static DEVICE_ATTR(bm, S_IRUGO, input_dev_show_cap_##bm, NULL);
+static CLASS_DEVICE_ATTR(bm, S_IRUGO, input_dev_show_cap_##bm, NULL);
 
 INPUT_DEV_CAP_ATTR(EV, ev);
 INPUT_DEV_CAP_ATTR(KEY, key);
@@ -749,15 +741,15 @@ INPUT_DEV_CAP_ATTR(FF, ff);
 INPUT_DEV_CAP_ATTR(SW, sw);
 
 static struct attribute *input_dev_caps_attrs[] = {
-	&dev_attr_ev.attr,
-	&dev_attr_key.attr,
-	&dev_attr_rel.attr,
-	&dev_attr_abs.attr,
-	&dev_attr_msc.attr,
-	&dev_attr_led.attr,
-	&dev_attr_snd.attr,
-	&dev_attr_ff.attr,
-	&dev_attr_sw.attr,
+	&class_device_attr_ev.attr,
+	&class_device_attr_key.attr,
+	&class_device_attr_rel.attr,
+	&class_device_attr_abs.attr,
+	&class_device_attr_msc.attr,
+	&class_device_attr_led.attr,
+	&class_device_attr_snd.attr,
+	&class_device_attr_ff.attr,
+	&class_device_attr_sw.attr,
 	NULL
 };
 
@@ -766,9 +758,9 @@ static struct attribute_group input_dev_
 	.attrs	= input_dev_caps_attrs,
 };
 
-static void input_dev_release(struct device *d)
+static void input_dev_release(struct class_device *class_dev)
 {
-	struct input_dev *dev = to_input_dev(d);
+	struct input_dev *dev = to_input_dev(class_dev);
 
 	kfree(dev);
 	module_put(THIS_MODULE);
@@ -853,23 +845,16 @@ static int input_add_uevent_modalias_var
 			return err;					\
 	} while (0)
 
-static int input_dev_uevent(struct device *d, char **envp,
+static int input_dev_uevent(struct class_device *cdev, char **envp,
 			    int num_envp, char *buffer, int buffer_size)
 {
-	struct input_dev *dev;
+	struct input_dev *dev = to_input_dev(cdev);
 	int i = 0;
 	int len = 0;
 
-	/* input is a single class, this is only valid for input_dev's */
-	if (strncmp("input", kobject_name(&d->kobj), 5) != 0)
-		return 0;
-
-	dev = to_input_dev(d);
-
 	INPUT_ADD_HOTPLUG_VAR("PRODUCT=%x/%x/%x/%x",
 				dev->id.bustype, dev->id.vendor,
 				dev->id.product, dev->id.version);
-
 	if (dev->name)
 		INPUT_ADD_HOTPLUG_VAR("NAME=\"%s\"", dev->name);
 	if (dev->phys)
@@ -903,8 +888,8 @@ static int input_dev_uevent(struct devic
 
 struct class input_class = {
 	.name			= "input",
-	.dev_release		= input_dev_release,
-	.dev_uevent		= input_dev_uevent,
+	.release		= input_dev_release,
+	.uevent			= input_dev_uevent,
 };
 EXPORT_SYMBOL_GPL(input_class);
 
@@ -915,8 +900,8 @@ struct input_dev *input_allocate_device(
 	dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
 	if (dev) {
 		dev->dynalloc = 1;
-		device_initialize(&dev->d);
-		dev->d.class = &input_class;
+		dev->cdev.class = &input_class;
+		class_device_initialize(&dev->cdev);
 		mutex_init(&dev->mutex);
 		INIT_LIST_HEAD(&dev->h_list);
 		INIT_LIST_HEAD(&dev->node);
@@ -973,29 +958,29 @@ int input_register_device(struct input_d
 	INIT_LIST_HEAD(&dev->h_list);
 	list_add_tail(&dev->node, &input_dev_list);
 
-	dev->d.class = &input_class;
-	snprintf(dev->d.bus_id, sizeof(dev->d.bus_id),
+	dev->cdev.class = &input_class;
+	snprintf(dev->cdev.class_id, sizeof(dev->cdev.class_id),
 		 "input%ld", (unsigned long) atomic_inc_return(&input_no) - 1);
 
-	error = device_add(&dev->d);
+	error = class_device_add(&dev->cdev);
 	if (error)
 		return error;
 
-	error = sysfs_create_group(&dev->d.kobj, &input_dev_attr_group);
+	error = sysfs_create_group(&dev->cdev.kobj, &input_dev_attr_group);
 	if (error)
 		goto fail1;
 
-	error = sysfs_create_group(&dev->d.kobj, &input_dev_id_attr_group);
+	error = sysfs_create_group(&dev->cdev.kobj, &input_dev_id_attr_group);
 	if (error)
 		goto fail2;
 
-	error = sysfs_create_group(&dev->d.kobj, &input_dev_caps_attr_group);
+	error = sysfs_create_group(&dev->cdev.kobj, &input_dev_caps_attr_group);
 	if (error)
 		goto fail3;
 
 	__module_get(THIS_MODULE);
 
-	path = kobject_get_path(&dev->d.kobj, GFP_KERNEL);
+	path = kobject_get_path(&dev->cdev.kobj, GFP_KERNEL);
 	printk(KERN_INFO "input: %s as %s\n",
 		dev->name ? dev->name : "Unspecified device", path ? path : "N/A");
 	kfree(path);
@@ -1013,9 +998,9 @@ int input_register_device(struct input_d
 
 	return 0;
 
- fail3:	sysfs_remove_group(&dev->d.kobj, &input_dev_id_attr_group);
- fail2:	sysfs_remove_group(&dev->d.kobj, &input_dev_attr_group);
- fail1:	device_del(&dev->d);
+ fail3:	sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group);
+ fail2:	sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group);
+ fail1:	class_device_del(&dev->cdev);
 	return error;
 }
 EXPORT_SYMBOL(input_register_device);
@@ -1038,15 +1023,15 @@ void input_unregister_device(struct inpu
 
 	list_del_init(&dev->node);
 
-	sysfs_remove_group(&dev->d.kobj, &input_dev_caps_attr_group);
-	sysfs_remove_group(&dev->d.kobj, &input_dev_id_attr_group);
-	sysfs_remove_group(&dev->d.kobj, &input_dev_attr_group);
+	sysfs_remove_group(&dev->cdev.kobj, &input_dev_caps_attr_group);
+	sysfs_remove_group(&dev->cdev.kobj, &input_dev_id_attr_group);
+	sysfs_remove_group(&dev->cdev.kobj, &input_dev_attr_group);
 
 	mutex_lock(&dev->mutex);
 	dev->name = dev->phys = dev->uniq = NULL;
 	mutex_unlock(&dev->mutex);
 
-	device_unregister(&dev->d);
+	class_device_unregister(&dev->cdev);
 
 	input_wakeup_procfs_readers();
 }
diff -puN drivers/input/joydev.c~revert-gregkh-driver-input-device drivers/input/joydev.c
--- a/drivers/input/joydev.c~revert-gregkh-driver-input-device
+++ a/drivers/input/joydev.c
@@ -468,6 +468,7 @@ static struct file_operations joydev_fop
 static struct input_handle *joydev_connect(struct input_handler *handler, struct input_dev *dev, struct input_device_id *id)
 {
 	struct joydev *joydev;
+	struct class_device *cdev;
 	int i, j, t, minor;
 
 	for (minor = 0; minor < JOYDEV_MINORS && joydev_table[minor]; minor++);
@@ -532,9 +533,13 @@ static struct input_handle *joydev_conne
 
 	joydev_table[minor] = joydev;
 
-	device_create(&input_class, &dev->d,
+	cdev = class_device_create(&input_class, &dev->cdev,
 			MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + minor),
-			joydev->name);
+			dev->cdev.dev, joydev->name);
+
+	/* temporary symlink to keep userspace happy */
+	sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj,
+			  joydev->name);
 
 	return &joydev->handle;
 }
@@ -544,7 +549,8 @@ static void joydev_disconnect(struct inp
 	struct joydev *joydev = handle->private;
 	struct joydev_list *list;
 
-	device_destroy(&input_class, MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + joydev->minor));
+	sysfs_remove_link(&input_class.subsys.kset.kobj, joydev->name);
+	class_device_destroy(&input_class, MKDEV(INPUT_MAJOR, JOYDEV_MINOR_BASE + joydev->minor));
 	joydev->exist = 0;
 
 	if (joydev->open) {
diff -puN drivers/input/keyboard/atkbd.c~revert-gregkh-driver-input-device drivers/input/keyboard/atkbd.c
--- a/drivers/input/keyboard/atkbd.c~revert-gregkh-driver-input-device
+++ a/drivers/input/keyboard/atkbd.c
@@ -865,7 +865,7 @@ static void atkbd_set_device_attrs(struc
 	input_dev->id.version = atkbd->id;
 	input_dev->event = atkbd_event;
 	input_dev->private = atkbd;
-	input_dev->d.parent = &atkbd->ps2dev.serio->dev;
+	input_dev->cdev.dev = &atkbd->ps2dev.serio->dev;
 
 	input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP) | BIT(EV_MSC);
 
diff -puN drivers/input/misc/pcspkr.c~revert-gregkh-driver-input-device drivers/input/misc/pcspkr.c
--- a/drivers/input/misc/pcspkr.c~revert-gregkh-driver-input-device
+++ a/drivers/input/misc/pcspkr.c
@@ -78,7 +78,7 @@ static int __devinit pcspkr_probe(struct
 	pcspkr_dev->id.vendor = 0x001f;
 	pcspkr_dev->id.product = 0x0001;
 	pcspkr_dev->id.version = 0x0100;
-	pcspkr_dev->d.parent = &dev->dev;
+	pcspkr_dev->cdev.dev = &dev->dev;
 
 	pcspkr_dev->evbit[0] = BIT(EV_SND);
 	pcspkr_dev->sndbit[0] = BIT(SND_BELL) | BIT(SND_TONE);
diff -puN drivers/input/misc/wistron_btns.c~revert-gregkh-driver-input-device drivers/input/misc/wistron_btns.c
--- a/drivers/input/misc/wistron_btns.c~revert-gregkh-driver-input-device
+++ a/drivers/input/misc/wistron_btns.c
@@ -447,7 +447,7 @@ static int __devinit setup_input_dev(voi
 	input_dev->name = "Wistron laptop buttons";
 	input_dev->phys = "wistron/input0";
 	input_dev->id.bustype = BUS_HOST;
-	input_dev->d.parent = &wistron_device->dev;
+	input_dev->cdev.dev = &wistron_device->dev;
 
 	for (key = keymap; key->type != KE_END; key++) {
 		if (key->type == KE_KEY) {
diff -puN drivers/input/mouse/psmouse-base.c~revert-gregkh-driver-input-device drivers/input/mouse/psmouse-base.c
--- a/drivers/input/mouse/psmouse-base.c~revert-gregkh-driver-input-device
+++ a/drivers/input/mouse/psmouse-base.c
@@ -1036,7 +1036,7 @@ static int psmouse_switch_protocol(struc
 	struct input_dev *input_dev = psmouse->dev;
 
 	input_dev->private = psmouse;
-	input_dev->d.parent = &psmouse->ps2dev.serio->dev;
+	input_dev->cdev.dev = &psmouse->ps2dev.serio->dev;
 
 	input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REL);
 	input_dev->keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) | BIT(BTN_MIDDLE) | BIT(BTN_RIGHT);
diff -puN drivers/input/mousedev.c~revert-gregkh-driver-input-device drivers/input/mousedev.c
--- a/drivers/input/mousedev.c~revert-gregkh-driver-input-device
+++ a/drivers/input/mousedev.c
@@ -627,6 +627,7 @@ static struct file_operations mousedev_f
 static struct input_handle *mousedev_connect(struct input_handler *handler, struct input_dev *dev, struct input_device_id *id)
 {
 	struct mousedev *mousedev;
+	struct class_device *cdev;
 	int minor = 0;
 
 	for (minor = 0; minor < MOUSEDEV_MINORS && mousedev_table[minor]; minor++);
@@ -654,9 +655,13 @@ static struct input_handle *mousedev_con
 
 	mousedev_table[minor] = mousedev;
 
-	device_create(&input_class, &dev->d,
+	cdev = class_device_create(&input_class, &dev->cdev,
 			MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + minor),
-			mousedev->name);
+			dev->cdev.dev, mousedev->name);
+
+	/* temporary symlink to keep userspace happy */
+	sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj,
+			  mousedev->name);
 
 	return &mousedev->handle;
 }
@@ -666,7 +671,8 @@ static void mousedev_disconnect(struct i
 	struct mousedev *mousedev = handle->private;
 	struct mousedev_list *list;
 
-	device_destroy(&input_class,
+	sysfs_remove_link(&input_class.subsys.kset.kobj, mousedev->name);
+	class_device_destroy(&input_class,
 			MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + mousedev->minor));
 	mousedev->exist = 0;
 
@@ -740,8 +746,8 @@ static int __init mousedev_init(void)
 	mousedev_mix.exist = 1;
 	mousedev_mix.minor = MOUSEDEV_MIX;
 
-	device_create(&input_class, NULL,
-			MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX), "mice");
+	class_device_create(&input_class, NULL,
+			MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX), NULL, "mice");
 
 #ifdef CONFIG_INPUT_MOUSEDEV_PSAUX
 	if (!(psaux_registered = !misc_register(&psaux_mouse)))
@@ -759,7 +765,7 @@ static void __exit mousedev_exit(void)
 	if (psaux_registered)
 		misc_deregister(&psaux_mouse);
 #endif
-	device_destroy(&input_class,
+	class_device_destroy(&input_class,
 			MKDEV(INPUT_MAJOR, MOUSEDEV_MINOR_BASE + MOUSEDEV_MIX));
 	input_unregister_handler(&mousedev_handler);
 }
diff -puN drivers/input/tsdev.c~revert-gregkh-driver-input-device drivers/input/tsdev.c
--- a/drivers/input/tsdev.c~revert-gregkh-driver-input-device
+++ a/drivers/input/tsdev.c
@@ -373,6 +373,7 @@ static struct input_handle *tsdev_connec
 					  struct input_device_id *id)
 {
 	struct tsdev *tsdev;
+	struct class_device *cdev;
 	int minor, delta;
 
 	for (minor = 0; minor < TSDEV_MINORS / 2 && tsdev_table[minor]; minor++);
@@ -412,9 +413,13 @@ static struct input_handle *tsdev_connec
 
 	tsdev_table[minor] = tsdev;
 
-	device_create(&input_class, &dev->d,
+	cdev = class_device_create(&input_class, &dev->cdev,
 			MKDEV(INPUT_MAJOR, TSDEV_MINOR_BASE + minor),
-			tsdev->name);
+			dev->cdev.dev, tsdev->name);
+
+	/* temporary symlink to keep userspace happy */
+	sysfs_create_link(&input_class.subsys.kset.kobj, &cdev->kobj,
+			  tsdev->name);
 
 	return &tsdev->handle;
 }
@@ -424,7 +429,8 @@ static void tsdev_disconnect(struct inpu
 	struct tsdev *tsdev = handle->private;
 	struct tsdev_list *list;
 
-	device_destroy(&input_class,
+	sysfs_remove_link(&input_class.subsys.kset.kobj, tsdev->name);
+	class_device_destroy(&input_class,
 			MKDEV(INPUT_MAJOR, TSDEV_MINOR_BASE + tsdev->minor));
 	tsdev->exist = 0;
 
diff -puN drivers/usb/input/acecad.c~revert-gregkh-driver-input-device drivers/usb/input/acecad.c
--- a/drivers/usb/input/acecad.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/acecad.c
@@ -181,7 +181,7 @@ static int usb_acecad_probe(struct usb_i
 	input_dev->name = acecad->name;
 	input_dev->phys = acecad->phys;
 	usb_to_input_id(dev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = acecad;
 
 	input_dev->open = usb_acecad_open;
diff -puN drivers/usb/input/aiptek.c~revert-gregkh-driver-input-device drivers/usb/input/aiptek.c
--- a/drivers/usb/input/aiptek.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/aiptek.c
@@ -2055,7 +2055,7 @@ aiptek_probe(struct usb_interface *intf,
 	inputdev->name = "Aiptek";
 	inputdev->phys = aiptek->features.usbPath;
 	usb_to_input_id(usbdev, &inputdev->id);
-	inputdev->d.parent = &intf->dev;
+	inputdev->cdev.dev = &intf->dev;
 	inputdev->private = aiptek;
 	inputdev->open = aiptek_open;
 	inputdev->close = aiptek_close;
diff -puN drivers/usb/input/appletouch.c~revert-gregkh-driver-input-device drivers/usb/input/appletouch.c
--- a/drivers/usb/input/appletouch.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/appletouch.c
@@ -529,7 +529,7 @@ static int atp_probe(struct usb_interfac
 	input_dev->name = "appletouch";
 	input_dev->phys = dev->phys;
 	usb_to_input_id(dev->udev, &input_dev->id);
-	input_dev->d.parent = &iface->dev;
+	input_dev->cdev.dev = &iface->dev;
 
 	input_dev->private = dev;
 	input_dev->open = atp_open;
diff -puN drivers/usb/input/ati_remote.c~revert-gregkh-driver-input-device drivers/usb/input/ati_remote.c
--- a/drivers/usb/input/ati_remote.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/ati_remote.c
@@ -669,7 +669,7 @@ static void ati_remote_input_init(struct
 	idev->phys = ati_remote->phys;
 
 	usb_to_input_id(ati_remote->udev, &idev->id);
-	idev->d.parent = &ati_remote->udev->dev;
+	idev->cdev.dev = &ati_remote->udev->dev;
 }
 
 static int ati_remote_initialize(struct ati_remote *ati_remote)
diff -puN drivers/usb/input/ati_remote2.c~revert-gregkh-driver-input-device drivers/usb/input/ati_remote2.c
--- a/drivers/usb/input/ati_remote2.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/ati_remote2.c
@@ -332,7 +332,7 @@ static int ati_remote2_input_init(struct
 	idev->phys = ar2->phys;
 
 	usb_to_input_id(ar2->udev, &idev->id);
-	idev->d.parent = &ar2->udev->dev;
+	idev->cdev.dev = &ar2->udev->dev;
 
 	i = input_register_device(idev);
 	if (i)
diff -puN drivers/usb/input/hid-input.c~revert-gregkh-driver-input-device drivers/usb/input/hid-input.c
--- a/drivers/usb/input/hid-input.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/hid-input.c
@@ -826,7 +826,7 @@ int hidinput_connect(struct hid_device *
 				input_dev->phys = hid->phys;
 				input_dev->uniq = hid->uniq;
 				usb_to_input_id(dev, &input_dev->id);
-				input_dev->d.parent = &hid->intf->dev;
+				input_dev->cdev.dev = &hid->intf->dev;
 
 				hidinput->input = input_dev;
 				list_add_tail(&hidinput->list, &hid->inputs);
diff -puN drivers/usb/input/itmtouch.c~revert-gregkh-driver-input-device drivers/usb/input/itmtouch.c
--- a/drivers/usb/input/itmtouch.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/itmtouch.c
@@ -184,7 +184,7 @@ static int itmtouch_probe(struct usb_int
 	input_dev->name = itmtouch->name;
 	input_dev->phys = itmtouch->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = itmtouch;
 
 	input_dev->open = itmtouch_open;
diff -puN drivers/usb/input/kbtab.c~revert-gregkh-driver-input-device drivers/usb/input/kbtab.c
--- a/drivers/usb/input/kbtab.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/kbtab.c
@@ -145,7 +145,7 @@ static int kbtab_probe(struct usb_interf
 	input_dev->name = "KB Gear Tablet";
 	input_dev->phys = kbtab->phys;
 	usb_to_input_id(dev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = kbtab;
 
 	input_dev->open = kbtab_open;
diff -puN drivers/usb/input/keyspan_remote.c~revert-gregkh-driver-input-device drivers/usb/input/keyspan_remote.c
--- a/drivers/usb/input/keyspan_remote.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/keyspan_remote.c
@@ -497,7 +497,7 @@ static int keyspan_probe(struct usb_inte
 	input_dev->name = remote->name;
 	input_dev->phys = remote->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &interface->dev;
+	input_dev->cdev.dev = &interface->dev;
 
 	input_dev->evbit[0] = BIT(EV_KEY);		/* We will only report KEY events. */
 	for (i = 0; i < ARRAY_SIZE(keyspan_key_table); i++)
diff -puN drivers/usb/input/mtouchusb.c~revert-gregkh-driver-input-device drivers/usb/input/mtouchusb.c
--- a/drivers/usb/input/mtouchusb.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/mtouchusb.c
@@ -234,7 +234,7 @@ static int mtouchusb_probe(struct usb_in
 	input_dev->name = mtouch->name;
 	input_dev->phys = mtouch->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = mtouch;
 
 	input_dev->open = mtouchusb_open;
diff -puN drivers/usb/input/powermate.c~revert-gregkh-driver-input-device drivers/usb/input/powermate.c
--- a/drivers/usb/input/powermate.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/powermate.c
@@ -362,7 +362,7 @@ static int powermate_probe(struct usb_in
 
 	input_dev->phys = pm->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = pm;
 
 	input_dev->event = powermate_input_event;
diff -puN drivers/usb/input/touchkitusb.c~revert-gregkh-driver-input-device drivers/usb/input/touchkitusb.c
--- a/drivers/usb/input/touchkitusb.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/touchkitusb.c
@@ -317,7 +317,7 @@ static int touchkit_probe(struct usb_int
 	input_dev->name = touchkit->name;
 	input_dev->phys = touchkit->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = touchkit;
 	input_dev->open = touchkit_open;
 	input_dev->close = touchkit_close;
diff -puN drivers/usb/input/usbkbd.c~revert-gregkh-driver-input-device drivers/usb/input/usbkbd.c
--- a/drivers/usb/input/usbkbd.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/usbkbd.c
@@ -278,7 +278,7 @@ static int usb_kbd_probe(struct usb_inte
 	input_dev->name = kbd->name;
 	input_dev->phys = kbd->phys;
 	usb_to_input_id(dev, &input_dev->id);
-	input_dev->d.parent = &iface->dev;
+	input_dev->cdev.dev = &iface->dev;
 	input_dev->private = kbd;
 
 	input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_LED) | BIT(EV_REP);
diff -puN drivers/usb/input/usbmouse.c~revert-gregkh-driver-input-device drivers/usb/input/usbmouse.c
--- a/drivers/usb/input/usbmouse.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/usbmouse.c
@@ -173,7 +173,7 @@ static int usb_mouse_probe(struct usb_in
 	input_dev->name = mouse->name;
 	input_dev->phys = mouse->phys;
 	usb_to_input_id(dev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 
 	input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REL);
 	input_dev->keybit[LONG(BTN_MOUSE)] = BIT(BTN_LEFT) | BIT(BTN_RIGHT) | BIT(BTN_MIDDLE);
diff -puN drivers/usb/input/usbtouchscreen.c~revert-gregkh-driver-input-device drivers/usb/input/usbtouchscreen.c
--- a/drivers/usb/input/usbtouchscreen.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/usbtouchscreen.c
@@ -508,7 +508,7 @@ static int usbtouch_probe(struct usb_int
 	input_dev->name = usbtouch->name;
 	input_dev->phys = usbtouch->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = usbtouch;
 	input_dev->open = usbtouch_open;
 	input_dev->close = usbtouch_close;
diff -puN drivers/usb/input/xpad.c~revert-gregkh-driver-input-device drivers/usb/input/xpad.c
--- a/drivers/usb/input/xpad.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/xpad.c
@@ -244,7 +244,7 @@ static int xpad_probe(struct usb_interfa
 	input_dev->name = xpad_device[i].name;
 	input_dev->phys = xpad->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 	input_dev->private = xpad;
 	input_dev->open = xpad_open;
 	input_dev->close = xpad_close;
diff -puN drivers/usb/input/yealink.c~revert-gregkh-driver-input-device drivers/usb/input/yealink.c
--- a/drivers/usb/input/yealink.c~revert-gregkh-driver-input-device
+++ a/drivers/usb/input/yealink.c
@@ -940,7 +940,7 @@ static int usb_probe(struct usb_interfac
 	input_dev->name = nfo->name;
 	input_dev->phys = yld->phys;
 	usb_to_input_id(udev, &input_dev->id);
-	input_dev->d.parent = &intf->dev;
+	input_dev->cdev.dev = &intf->dev;
 
 	input_dev->private = yld;
 	input_dev->open = input_open;
diff -puN include/linux/input.h~revert-gregkh-driver-input-device include/linux/input.h
--- a/include/linux/input.h~revert-gregkh-driver-input-device
+++ a/include/linux/input.h
@@ -903,14 +903,15 @@ struct input_dev {
 	struct mutex mutex;	/* serializes open and close operations */
 	unsigned int users;
 
-	struct device d;
+	struct class_device cdev;
+	struct device *dev;	/* will be removed soon */
 
 	int dynalloc;	/* temporarily */
 
 	struct list_head	h_list;
 	struct list_head	node;
 };
-#define to_input_dev(dev) container_of(dev, struct input_dev, d)
+#define to_input_dev(d) container_of(d, struct input_dev, cdev)
 
 /*
  * Verify that we are in sync with input_device_id mod_devicetable.h #defines
@@ -1029,12 +1030,12 @@ void input_free_device(struct input_dev 
 
 static inline struct input_dev *input_get_device(struct input_dev *dev)
 {
-	return to_input_dev(get_device(&dev->d));
+	return to_input_dev(class_device_get(&dev->cdev));
 }
 
 static inline void input_put_device(struct input_dev *dev)
 {
-	put_device(&dev->d);
+	class_device_put(&dev->cdev);
 }
 
 int input_register_device(struct input_dev *);
_

Patches currently in -mm which might be from akpm@xxxxxxxx are

origin.patch
knfsd-have-ext2-reject-file-handles-with-bad-inode-numbers-early-tidy.patch
knfsd-make-ext3-reject-filehandles-referring-to-invalid-inode-numbers-tidy.patch
hvc_console-suspend-fix.patch
git-acpi.patch
acpi-asus-s3-resume-fix.patch
sony_apci-resume.patch
git-alsa.patch
kauditd_thread-warning-fix.patch
git-block.patch
git-block-hack.patch
revert-gregkh-driver-class_device_rename-remove.patch
revert-gregkh-driver-network-class_device-to-device.patch
revert-gregkh-driver-tty-device.patch
revert-gregkh-driver-mem-devices.patch
revert-gregkh-driver-input-device.patch
drivers-base-check-errors.patch
scsi-device_reprobe-can-fail.patch
git-drm.patch
git-dvb.patch
git-gfs2.patch
git-ia64.patch
git-ieee1394-fixup.patch
git-input.patch
git-intelfb-fixup.patch
git-kbuild.patch
revert-libata-ignore-cfa-signature-while-sanity-checking-an-atapi-device.patch
git-libata-all.patch
git-libata-all-ata_piix-build-fix.patch
1-of-2-jmicron-driver-fix.patch
via-pata-controller-xfer-fixes-fix.patch
git-netdev-all.patch
drivers-net-ns83820c-add-paramter-to-disable-auto.patch
git-net.patch
git-net-fixup.patch
git-nfs-fixup.patch
revert-allow-file-systems-to-manually-d_move-inside-of-rename.patch
git-ocfs2.patch
git-pcmcia-fixup.patch
git-powerpc.patch
tickle-nmi-watchdog-on-serial-output-fix.patch
serial-fix-uart_bug_txen-test.patch
fix-gregkh-pci-msi-blacklist-pci-e-chipsets-depending-on-hypertransport-msi-capability.patch
pcie-check-and-return-bus_register-errors-fix.patch
git-scsi-misc.patch
git-scsi-misc-fixup.patch
revert-scsi-improve-inquiry-printing.patch
git-scsi-misc-nlmsg_multicast-fix.patch
git-block-vs-git-sas.patch
git-scsi-target-fixup.patch
git-scsi-target-vs-git-block.patch
gregkh-usb-usb-storage-add-rio-karma-eject-support-fix.patch
fix-gregkh-usb-usbcore-add-autosuspend-autoresume-infrastructure.patch
git-watchdog.patch
revert-x86_64-mm-i386-remove-lock-section.patch
revert-x86_64-mm-detect-cfi.patch
fix-x86_64-mm-i386-backtrace-ebp-fallback.patch
fix-x86_64-mm-i386-pda-smp-processorid.patch
fix-x86_64-mm-spinlock-cleanup.patch
xfs-rename-uio_read.patch
adix-tree-rcu-lockless-readside-update-tidy.patch
mm-tracking-shared-dirty-pages-checks.patch
mm-tracking-shared-dirty-pages-wimp.patch
convert-i386-numa-kva-space-to-bootmem-tidy.patch
reduce-max_nr_zones-make-display-of-highmem-counters-conditional-on-config_highmem-tidy.patch
reduce-max_nr_zones-use-enum-to-define-zones-reformat-and-comment-cleanup.patch
reduce-max_nr_zones-use-enum-to-define-zones-reformat-and-comment-fix.patch
reduce-max_nr_zones-remove-display-of-counters-for-unconfigured-zones-s390-fix.patch
out-of-memory-notifier-tidy.patch
mm-swap-write-failure-fixup-fix.patch
slab-optimize-kmalloc_node-the-same-way-as-kmalloc-fix.patch
slab-fix-lockdep-warnings-fix-2.patch
have-x86-use-add_active_range-and-free_area_init_nodes-fix.patch
zone_reclaim-dynamic-slab-reclaim-tidy.patch
vm-add-per-zone-writeout-counter.patch
convert-s390-page-handling-macros-to-functions-fix.patch
slab-fix-kmalloc_node-applying-memory-policies-if-nodeid-==-numa_node_id-fix.patch
gfp_thisnode-for-the-slab-allocator-v2-fix.patch
acx1xx-wireless-driver.patch
tiacx-pci-build-fix.patch
tiacx-ia64-fix.patch
tiacx-build-fix.patch
binfmt_elf-consistently-use-loff_t.patch
nommu-set-bdi-capabilities-for-dev-mem-and-dev-kmem-tidy.patch
nommu-move-the-fallback-arch_vma_name-to-a-sensible-place-fix.patch
convert-i386-summit-subarch-to-use-srat-info-for-apicid_to_node-calls-tidy.patch
i386-adds-smp_call_function_single-fix.patch
swsusp-write-timer.patch
swsusp-write-speedup.patch
swsusp-read-timer.patch
swsusp-read-speedup.patch
swsusp-read-speedup-fix.patch
swsusp-read-speedup-cleanup.patch
swsusp-read-speedup-cleanup-2.patch
swsusp-read-speedup-fix-fix-2.patch
deprecate-smbfs-in-favour-of-cifs.patch
edac-new-opteron-athlon64-memory-controller-driver-tidy.patch
inode_diet-replace-inodeugeneric_ip-with-inodei_private-gfs-fix.patch
x86-microcode-microcode-driver-cleanup-tidy.patch
x86-microcode-add-sysfs-and-hotplug-support-fix.patch
eisa-bus-modalias-attributes-support-1-fix-git-kbuild-fix.patch
add-address_space_operationsbatch_write-fix.patch
alloc_fdtable-cleanup.patch
sysctl-allow-proc-sys-without-sys_sysctl-fix.patch
add-probe_kernel_address.patch
x86-use-probe_kernel_address-in-handle_bug.patch
blockdevc-check-errors.patch
let-warn_on-warn_on_once-return-the-condition-fix.patch
let-warn_on-warn_on_once-return-the-condition-fix-2.patch
omap-add-watchdog-driver-support-tweaks.patch
move-valid_dma_direction-from-x86_64-to-generic-code-fix.patch
single-bit-flip-detector-tidy.patch
fix-unserialized-task-files-changing-fix.patch
tty-make-termios_sem-a-mutex-fix.patch
solaris-emulation-incorrect-tty-locking-fix.patch
solaris-emulation-incorrect-tty-locking-fix-2.patch
cpuset-top_cpuset-tracks-hotplug-changes-to-node_online_map-fix.patch
remove-sound-oss-copying.patch
maximum-latency-tracking-infrastructure-tidy.patch
fs-nameic-replace-multiple-current-fs-by-shortcut-variable-tidy.patch
call-mm-page-writebackcset_ratelimit-when-new-pages-tidy.patch
sys-modules-patch-allow-full-length-section-names.patch
expand_fdtable-remove-pointless-unlocklock.patch
linux-magich-for-magic-numbers-sparc-fix.patch
implement-a-general-integer-log2-facility-in-the-kernel-safety.patch
alter-roundup_pow_of_two-so-that-it-can-make-use-of-ilog2-on-a-constant-fix.patch
ntp-move-all-the-ntp-related-code-to-ntpc-fix.patch
reiserfs-on-demand-bitmap-loading.patch
streamline-generic_file_-interfaces-and-filemap-gfs-fix.patch
add-vector-aio-support-fix.patch
csa-basic-accounting-over-taskstats-fix.patch
fs-cache-make-kafs-use-fs-cache-fix.patch
fs-cache-make-kafs-use-fs-cache-vs-streamline-generic_file_-interfaces-and-filemap.patch
nfs-use-local-caching-12-fix.patch
stack-overflow-safe-kdump-crash_use_safe_smp_processor_id-fix.patch
generic-ioremap_page_range-x86_64-conversion-fix.patch
vfs-make-filldir_t-and-struct-kstat-deal-in-64-bit-inode-numbers-alpha-fix.patch
some-cleanup-in-the-pipe-code-tidy.patch
support-piping-into-commands-in-proc-sys-kernel-core_pattern-fix.patch
move-pidmap-to-pspaceh-fix.patch
kprobes-handle-symbol-resolution-when-modulesymbol-is-specified-tidy.patch
isdn-work-around-excessive-udelay.patch
knfsd-add-a-callback-for-when-last-rpc-thread-finishes-tidy.patch
knfsd-add-a-callback-for-when-last-rpc-thread-finishes-fix.patch
knfsd-separate-out-some-parts-of-nfsd_svc-which-start-nfs-servers-tweaks.patch
knfsd-define-new-nfsdfs-file-portlist-contains-list-of-ports-tidy.patch
knfsd-define-new-nfsdfs-file-portlist-contains-list-of-ports-fix.patch
knfsd-drop-serv-option-to-svc_recv-and-svc_process-nfs-callback-fix-nfs-callback-fix.patch
knfsd-move-tempsock-aging-to-a-timer-tidy.patch
sched-remove-unnecessary-sched-group-allocations-fix.patch
swap_prefetch-vs-zoned-counters.patch
ecryptfs-mmap-operations.patch
ecryptfs-alpha-build-fix.patch
ecryptfs-more-elegant-aes-key-size-manipulation.patch
ecryptfs-get_sb_dev-fix.patch
make-kmem_cache_destroy-return-void-ecryptfs.patch
ecryptfs-versioning-fixes-tidy.patch
namespaces-add-nsproxy.patch
namespaces-utsname-switch-to-using-uts-namespaces.patch
namespaces-utsname-switch-to-using-uts-namespaces-klibc-bit-sparc.patch
namespaces-utsname-use-init_utsname-when-appropriate.patch
namespaces-utsname-implement-utsname-namespaces.patch
namespaces-utsname-sysctl-hack.patch
ipc-namespace-core.patch
readahead-sysctl-parameters-fix.patch
make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch
make-kmem_cache_destroy-return-void-reiser4.patch
reiser4-hardirq-include-fix.patch
reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch
reiser4-get_sb_dev-fix.patch
reiser4-vs-zoned-allocator.patch
reiser4-rename-generic_sounding_globalspatch-fix.patch
hpt3xx-rework-rate-filtering-tidy.patch
genirq-convert-the-i386-architecture-to-irq-chips.patch
genirq-x86_64-irq-reenable-migrating-irqs-to-other-cpus.patch
genirq-msi-simplify-msi-enable-and-disable.patch
genirq-ia64-irq-dynamic-irq-support.patch
genirq-msi-only-build-msi-apicc-on-ia64-fix.patch
genirq-i386-irq-remove-the-msi-assumption-that-irq-==-vector.patch
genirq-x86_64-irq-make-vector_irq-per-cpu-fix.patch
genirq-x86_64-irq-make-vector_irq-per-cpu-warning-fix.patch
add-hypertransport-capability-defines-fix.patch
initial-generic-hypertransport-interrupt-support-Kconfig-fix.patch
srcu-report-out-of-memory-errors-fixlet.patch
isdn-debug-build-fix.patch
isdn-more-pr_debug-fixes.patch
nr_blockdev_pages-in_interrupt-warning.patch
device-suspend-debug.patch
slab-leaks3-default-y.patch
x86-kmap_atomic-debugging.patch
restore-rogue-readahead-printk.patch
input_register_device-debug.patch
put_bh-debug.patch
acpi_format_exception-debug.patch
jmicron-warning-fix.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux