diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2006-02-08 09:12:01 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-02-08 09:12:01 -0800 |
commit | 2fdb5c74ee3f0b5b737f365fbf17e3c0ff6dea10 (patch) | |
tree | 036ad52c78e857bbe2cb76ed6a58fe0fe1adaa1e /driver | |
parent | c722728e48520ccdf3b9f159d74c46520e57306b (diff) | |
download | patches-2fdb5c74ee3f0b5b737f365fbf17e3c0ff6dea10.tar.gz |
removed patches that were accepted upstream
Diffstat (limited to 'driver')
-rw-r--r-- | driver/debugfs-trivial-comment-fix.patch | 46 | ||||
-rw-r--r-- | driver/drivers-base-proper-prototypes.patch | 103 | ||||
-rw-r--r-- | driver/drm-classdev-cleanup.patch | 246 | ||||
-rw-r--r-- | driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch | 42 | ||||
-rw-r--r-- | driver/fix-uevent-buffer-overflow-in-input-layer.patch | 30 | ||||
-rw-r--r-- | driver/fix-userspace-interface-breakage-in-power-state.patch | 60 | ||||
-rw-r--r-- | driver/ib-sysfs-cleanup.patch | 54 | ||||
-rw-r--r-- | driver/kobject-don-t-oops-on-null-kobject.name.patch | 37 | ||||
-rw-r--r-- | driver/kobject_add-must-have-valid-name.patch | 28 | ||||
-rw-r--r-- | driver/spi-spi_butterfly-restore-lost-deltas.patch | 179 |
10 files changed, 0 insertions, 825 deletions
diff --git a/driver/debugfs-trivial-comment-fix.patch b/driver/debugfs-trivial-comment-fix.patch deleted file mode 100644 index 9e54c7c2879a8..0000000000000 --- a/driver/debugfs-trivial-comment-fix.patch +++ /dev/null @@ -1,46 +0,0 @@ -From tab@snarc.org Wed Jan 25 05:49:23 2006 -Date: Wed, 25 Jan 2006 14:49:13 +0100 -From: Vincent Hanquez <vincent@snarc.org> -Cc: Greg Kroah-Hartman <greg@kroah.com> -Subject: debugfs: trivial comment fix -Message-ID: <20060125134913.GA8594@snarc.org> -Content-Disposition: inline - -Fix trivial type mixup in the debugfs function comments. - -Signed-off-by: Vincent Hanquez <vincent@snarc.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - fs/debugfs/file.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- gregkh-2.6.orig/fs/debugfs/file.c -+++ gregkh-2.6/fs/debugfs/file.c -@@ -56,7 +56,7 @@ static u64 debugfs_u8_get(void *data) - DEFINE_SIMPLE_ATTRIBUTE(fops_u8, debugfs_u8_get, debugfs_u8_set, "%llu\n"); - - /** -- * debugfs_create_u8 - create a file in the debugfs filesystem that is used to read and write a unsigned 8 bit value. -+ * debugfs_create_u8 - create a file in the debugfs filesystem that is used to read and write an unsigned 8 bit value. - * - * @name: a pointer to a string containing the name of the file to create. - * @mode: the permission that the file should have -@@ -98,7 +98,7 @@ static u64 debugfs_u16_get(void *data) - DEFINE_SIMPLE_ATTRIBUTE(fops_u16, debugfs_u16_get, debugfs_u16_set, "%llu\n"); - - /** -- * debugfs_create_u16 - create a file in the debugfs filesystem that is used to read and write a unsigned 8 bit value. -+ * debugfs_create_u16 - create a file in the debugfs filesystem that is used to read and write an unsigned 16 bit value. - * - * @name: a pointer to a string containing the name of the file to create. - * @mode: the permission that the file should have -@@ -140,7 +140,7 @@ static u64 debugfs_u32_get(void *data) - DEFINE_SIMPLE_ATTRIBUTE(fops_u32, debugfs_u32_get, debugfs_u32_set, "%llu\n"); - - /** -- * debugfs_create_u32 - create a file in the debugfs filesystem that is used to read and write a unsigned 8 bit value. -+ * debugfs_create_u32 - create a file in the debugfs filesystem that is used to read and write an unsigned 32 bit value. - * - * @name: a pointer to a string containing the name of the file to create. - * @mode: the permission that the file should have diff --git a/driver/drivers-base-proper-prototypes.patch b/driver/drivers-base-proper-prototypes.patch deleted file mode 100644 index 1bcbde27c3e43..0000000000000 --- a/driver/drivers-base-proper-prototypes.patch +++ /dev/null @@ -1,103 +0,0 @@ -From bunk@stusta.de Thu Jan 19 08:30:23 2006 -Date: Thu, 19 Jan 2006 17:30:17 +0100 -From: Adrian Bunk <bunk@stusta.de> -To: Greg KH <gregkh@suse.de> -Subject: drivers/base/: proper prototypes -Message-ID: <20060119163017.GQ19398@stusta.de> -Content-Disposition: inline - -This patch contains the following changes: -- move prototypes to base.h -- sys.c should #include "base.h" for getting the prototype of it's - global function system_bus_init() - -Note that hidden in this patch there's a bugfix: - -Caller and callee disagreed regarding the return type of -sysdev_shutdown(). - - -Signed-off-by: Adrian Bunk <bunk@stusta.de> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/base/base.h | 4 ++++ - drivers/base/power/resume.c | 3 +-- - drivers/base/power/shutdown.c | 2 +- - drivers/base/power/suspend.c | 3 +-- - drivers/base/sys.c | 3 +++ - 5 files changed, 10 insertions(+), 5 deletions(-) - ---- gregkh-2.6.orig/drivers/base/base.h -+++ gregkh-2.6/drivers/base/base.h -@@ -19,6 +19,10 @@ extern void bus_remove_driver(struct dev - extern void driver_detach(struct device_driver * drv); - extern int driver_probe_device(struct device_driver *, struct device *); - -+extern void sysdev_shutdown(void); -+extern int sysdev_suspend(pm_message_t state); -+extern int sysdev_resume(void); -+ - static inline struct class_device *to_class_dev(struct kobject *obj) - { - return container_of(obj, struct class_device, kobj); ---- gregkh-2.6.orig/drivers/base/sys.c -+++ gregkh-2.6/drivers/base/sys.c -@@ -21,8 +21,11 @@ - #include <linux/slab.h> - #include <linux/string.h> - #include <linux/pm.h> -+#include <linux/device.h> - #include <asm/semaphore.h> - -+#include "base.h" -+ - extern struct subsystem devices_subsys; - - #define to_sysdev(k) container_of(k, struct sys_device, kobj) ---- gregkh-2.6.orig/drivers/base/power/shutdown.c -+++ gregkh-2.6/drivers/base/power/shutdown.c -@@ -12,6 +12,7 @@ - #include <linux/device.h> - #include <asm/semaphore.h> - -+#include "../base.h" - #include "power.h" - - #define to_dev(node) container_of(node, struct device, kobj.entry) -@@ -28,7 +29,6 @@ extern struct subsystem devices_subsys; - * they only get one called once when interrupts are disabled. - */ - --extern int sysdev_shutdown(void); - - /** - * device_shutdown - call ->shutdown() on each device to shutdown. ---- gregkh-2.6.orig/drivers/base/power/suspend.c -+++ gregkh-2.6/drivers/base/power/suspend.c -@@ -9,10 +9,9 @@ - */ - - #include <linux/device.h> -+#include "../base.h" - #include "power.h" - --extern int sysdev_suspend(pm_message_t state); -- - /* - * The entries in the dpm_active list are in a depth first order, simply - * because children are guaranteed to be discovered after parents, and ---- gregkh-2.6.orig/drivers/base/power/resume.c -+++ gregkh-2.6/drivers/base/power/resume.c -@@ -9,10 +9,9 @@ - */ - - #include <linux/device.h> -+#include "../base.h" - #include "power.h" - --extern int sysdev_resume(void); -- - - /** - * resume_device - Restore state for one device. diff --git a/driver/drm-classdev-cleanup.patch b/driver/drm-classdev-cleanup.patch deleted file mode 100644 index 0d68180b75a18..0000000000000 --- a/driver/drm-classdev-cleanup.patch +++ /dev/null @@ -1,246 +0,0 @@ -From foo@baz.org Sun Jun 5 14:33:21 2005 -Date: Fri, 20 Jan 2006 14:08:59 -0800 -To: Greg KH <gregkh@suse.de> -From: Greg Kroah-Hartman <gregkh@suse.de> -Subject: DRM: fix up classdev interface for drm core - -Current drm code doesn't work with userspace programs that listen only -to the kernel event netlink socket as it is trying to create its own dev -interface. Turns out lots of code can just be deleted as the driver -core can do all of this work automatically for you. - -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/char/drm/drmP.h | 10 +-- - drivers/char/drm/drm_stub.c | 2 - drivers/char/drm/drm_sysfs.c | 129 +++++++++---------------------------------- - 3 files changed, 34 insertions(+), 107 deletions(-) - ---- gregkh-2.6.orig/drivers/char/drm/drm_sysfs.c -+++ gregkh-2.6/drivers/char/drm/drm_sysfs.c -@@ -1,3 +1,4 @@ -+ - /* - * drm_sysfs.c - Modifications to drm_sysfs_class.c to support - * extra sysfs attribute from DRM. Normal drm_sysfs_class -@@ -19,36 +20,6 @@ - #include "drm_core.h" - #include "drmP.h" - --struct drm_sysfs_class { -- struct class_device_attribute attr; -- struct class class; --}; --#define to_drm_sysfs_class(d) container_of(d, struct drm_sysfs_class, class) -- --struct simple_dev { -- dev_t dev; -- struct class_device class_dev; --}; --#define to_simple_dev(d) container_of(d, struct simple_dev, class_dev) -- --static void release_simple_dev(struct class_device *class_dev) --{ -- struct simple_dev *s_dev = to_simple_dev(class_dev); -- kfree(s_dev); --} -- --static ssize_t show_dev(struct class_device *class_dev, char *buf) --{ -- struct simple_dev *s_dev = to_simple_dev(class_dev); -- return print_dev_t(buf, s_dev->dev); --} -- --static void drm_sysfs_class_release(struct class *class) --{ -- struct drm_sysfs_class *cs = to_drm_sysfs_class(class); -- kfree(cs); --} -- - /* Display the version of drm_core. This doesn't work right in current design */ - static ssize_t version_show(struct class *dev, char *buf) - { -@@ -69,38 +40,16 @@ static CLASS_ATTR(version, S_IRUGO, vers - * Note, the pointer created here is to be destroyed when finished by making a - * call to drm_sysfs_destroy(). - */ --struct drm_sysfs_class *drm_sysfs_create(struct module *owner, char *name) -+struct class *drm_sysfs_create(struct module *owner, char *name) - { -- struct drm_sysfs_class *cs; -- int retval; -+ struct class *class; -+ -+ class = class_create(owner, name); -+ if (!class) -+ return class; - -- cs = kmalloc(sizeof(*cs), GFP_KERNEL); -- if (!cs) { -- retval = -ENOMEM; -- goto error; -- } -- memset(cs, 0x00, sizeof(*cs)); -- -- cs->class.name = name; -- cs->class.class_release = drm_sysfs_class_release; -- cs->class.release = release_simple_dev; -- -- cs->attr.attr.name = "dev"; -- cs->attr.attr.mode = S_IRUGO; -- cs->attr.attr.owner = owner; -- cs->attr.show = show_dev; -- cs->attr.store = NULL; -- -- retval = class_register(&cs->class); -- if (retval) -- goto error; -- class_create_file(&cs->class, &class_attr_version); -- -- return cs; -- -- error: -- kfree(cs); -- return ERR_PTR(retval); -+ class_create_file(class, &class_attr_version); -+ return class; - } - - /** -@@ -110,12 +59,13 @@ struct drm_sysfs_class *drm_sysfs_create - * Note, the pointer to be destroyed must have been created with a call to - * drm_sysfs_create(). - */ --void drm_sysfs_destroy(struct drm_sysfs_class *cs) -+void drm_sysfs_destroy(struct class *class) - { -- if ((cs == NULL) || (IS_ERR(cs))) -+ if ((class == NULL) || (IS_ERR(class))) - return; - -- class_unregister(&cs->class); -+ class_remove_file(class, &class_attr_version); -+ class_destroy(class); - } - - static ssize_t show_dri(struct class_device *class_device, char *buf) -@@ -132,7 +82,7 @@ static struct class_device_attribute cla - - /** - * drm_sysfs_device_add - adds a class device to sysfs for a character driver -- * @cs: pointer to the struct drm_sysfs_class that this device should be registered to. -+ * @cs: pointer to the struct class that this device should be registered to. - * @dev: the dev_t for the device to be added. - * @device: a pointer to a struct device that is assiociated with this class device. - * @fmt: string for the class device's name -@@ -141,46 +91,26 @@ static struct class_device_attribute cla - * class. A "dev" file will be created, showing the dev_t for the device. The - * pointer to the struct class_device will be returned from the call. Any further - * sysfs files that might be required can be created using this pointer. -- * Note: the struct drm_sysfs_class passed to this function must have previously been -+ * Note: the struct class passed to this function must have previously been - * created with a call to drm_sysfs_create(). - */ --struct class_device *drm_sysfs_device_add(struct drm_sysfs_class *cs, -- drm_head_t *head) -+struct class_device *drm_sysfs_device_add(struct class *cs, drm_head_t *head) - { -- struct simple_dev *s_dev = NULL; -- int i, retval; -+ struct class_device *class_dev; -+ int i; - -- if ((cs == NULL) || (IS_ERR(cs))) { -- retval = -ENODEV; -- goto error; -- } -- -- s_dev = kmalloc(sizeof(*s_dev), GFP_KERNEL); -- if (!s_dev) { -- retval = -ENOMEM; -- goto error; -- } -- memset(s_dev, 0x00, sizeof(*s_dev)); -- -- s_dev->dev = MKDEV(DRM_MAJOR, head->minor); -- s_dev->class_dev.dev = &(head->dev->pdev)->dev; -- s_dev->class_dev.class = &cs->class; -- -- snprintf(s_dev->class_dev.class_id, BUS_ID_SIZE, "card%d", head->minor); -- retval = class_device_register(&s_dev->class_dev); -- if (retval) -- goto error; -+ class_dev = class_device_create(cs, NULL, -+ MKDEV(DRM_MAJOR, head->minor), -+ &(head->dev->pdev)->dev, -+ "card%d", head->minor); -+ if (!class_dev) -+ return NULL; - -- class_device_create_file(&s_dev->class_dev, &cs->attr); -- class_set_devdata(&s_dev->class_dev, head); -+ class_set_devdata(class_dev, head); - - for (i = 0; i < ARRAY_SIZE(class_device_attrs); i++) -- class_device_create_file(&s_dev->class_dev, &class_device_attrs[i]); -- return &s_dev->class_dev; -- --error: -- kfree(s_dev); -- return ERR_PTR(retval); -+ class_device_create_file(class_dev, &class_device_attrs[i]); -+ return class_dev; - } - - /** -@@ -192,10 +122,9 @@ error: - */ - void drm_sysfs_device_remove(struct class_device *class_dev) - { -- struct simple_dev *s_dev = to_simple_dev(class_dev); - int i; - - for (i = 0; i < ARRAY_SIZE(class_device_attrs); i++) -- class_device_remove_file(&s_dev->class_dev, &class_device_attrs[i]); -- class_device_unregister(&s_dev->class_dev); -+ class_device_remove_file(class_dev, &class_device_attrs[i]); -+ class_device_unregister(class_dev); - } ---- gregkh-2.6.orig/drivers/char/drm/drmP.h -+++ gregkh-2.6/drivers/char/drm/drmP.h -@@ -980,7 +980,7 @@ extern int drm_put_head(drm_head_t * hea - extern unsigned int drm_debug; - extern unsigned int drm_cards_limit; - extern drm_head_t **drm_heads; --extern struct drm_sysfs_class *drm_class; -+extern struct class *drm_class; - extern struct proc_dir_entry *drm_proc_root; - - /* Proc support (drm_proc.h) */ -@@ -1011,11 +1011,9 @@ extern void __drm_pci_free(drm_device_t - extern void drm_pci_free(drm_device_t * dev, drm_dma_handle_t * dmah); - - /* sysfs support (drm_sysfs.c) */ --struct drm_sysfs_class; --extern struct drm_sysfs_class *drm_sysfs_create(struct module *owner, -- char *name); --extern void drm_sysfs_destroy(struct drm_sysfs_class *cs); --extern struct class_device *drm_sysfs_device_add(struct drm_sysfs_class *cs, -+extern struct class *drm_sysfs_create(struct module *owner, char *name); -+extern void drm_sysfs_destroy(struct class *cs); -+extern struct class_device *drm_sysfs_device_add(struct class *cs, - drm_head_t *head); - extern void drm_sysfs_device_remove(struct class_device *class_dev); - ---- gregkh-2.6.orig/drivers/char/drm/drm_stub.c -+++ gregkh-2.6/drivers/char/drm/drm_stub.c -@@ -50,7 +50,7 @@ module_param_named(cards_limit, drm_card - module_param_named(debug, drm_debug, int, 0600); - - drm_head_t **drm_heads; --struct drm_sysfs_class *drm_class; -+struct class *drm_class; - struct proc_dir_entry *drm_proc_root; - - static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev, diff --git a/driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch b/driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch deleted file mode 100644 index 25d1eac01ec95..0000000000000 --- a/driver/fix-compiler-warning-in-driver-core-for-config_hotplug-n.patch +++ /dev/null @@ -1,42 +0,0 @@ -From rmk+gregkh=suse.de@arm.linux.org.uk Tue Jan 17 16:39:01 2006 -Date: Sat, 14 Jan 2006 20:01:02 +0000 -From: Russell King <rmk@arm.linux.org.uk> -To: Greg KH <gregkh@suse.de> -Subject: Fix compiler warning in driver core for CONFIG_HOTPLUG=N -Message-ID: <20060114200101.GD24816@flint.arm.linux.org.uk> -Content-Disposition: inline - -FYI, while running a build test, I found: - -drivers/base/bus.c:166: warning: `driver_attr_unbind' defined but not used -drivers/base/bus.c:194: warning: `driver_attr_bind' defined but not used - -Looks like these two attributes and supporting functions want to be -#ifdef HOTPLUG'd - -Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/base/bus.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- gregkh-2.6.orig/drivers/base/bus.c -+++ gregkh-2.6/drivers/base/bus.c -@@ -133,6 +133,8 @@ static struct kobj_type ktype_bus = { - decl_subsys(bus, &ktype_bus, NULL); - - -+#ifdef CONFIG_HOTPLUG -+ - /* Manually detach a device from its associated driver. */ - static int driver_helper(struct device *dev, void *data) - { -@@ -193,6 +195,7 @@ static ssize_t driver_bind(struct device - } - static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind); - -+#endif - - static struct device * next_device(struct klist_iter * i) - { diff --git a/driver/fix-uevent-buffer-overflow-in-input-layer.patch b/driver/fix-uevent-buffer-overflow-in-input-layer.patch deleted file mode 100644 index 41e0aa1e293f5..0000000000000 --- a/driver/fix-uevent-buffer-overflow-in-input-layer.patch +++ /dev/null @@ -1,30 +0,0 @@ -From benh@kernel.crashing.org Tue Jan 24 15:21:24 2006 -From: Benjamin Herrenschmidt <benh@kernel.crashing.org> -Subject: Fix uevent buffer overflow in input layer -To: Kay Sievers <kay.sievers@vrfy.org> -Cc: Greg KH <greg@kroah.com>, Dmitry Torokhov <dtor_core@ameritech.net> -Date: Wed, 25 Jan 2006 10:21:32 +1100 -Message-Id: <1138144893.4907.72.camel@localhost.localdomain> - -The buffer used for kobject uevent is too small for some of the events generated -by the input layer. Bump it to 2k. - -Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - - ---- - lib/kobject_uevent.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- gregkh-2.6.orig/lib/kobject_uevent.c -+++ gregkh-2.6/lib/kobject_uevent.c -@@ -22,7 +22,7 @@ - #include <linux/kobject.h> - #include <net/sock.h> - --#define BUFFER_SIZE 1024 /* buffer for the variables */ -+#define BUFFER_SIZE 2048 /* buffer for the variables */ - #define NUM_ENVP 32 /* number of env pointers */ - - #if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET) diff --git a/driver/fix-userspace-interface-breakage-in-power-state.patch b/driver/fix-userspace-interface-breakage-in-power-state.patch deleted file mode 100644 index 174c2c01dfbb9..0000000000000 --- a/driver/fix-userspace-interface-breakage-in-power-state.patch +++ /dev/null @@ -1,60 +0,0 @@ -From pavel@ucw.cz Sun Jan 22 13:39:07 2006 -Date: Sun, 22 Jan 2006 22:38:52 +0100 -From: Pavel Machek <pavel@suse.cz> -To: Andrew Morton <akpm@osdl.org> -Cc: <greg@kroah.com>, <mochel@digitalimplant.org>, <mjg59@srcf.ucam.org>, <benh@kernel.crashing.org> -Subject: Fix Userspace interface breakage in power/state -Message-ID: <20060122213852.GG2043@elf.ucw.cz> -Content-Disposition: inline - - -Prevent passing invalid values down to the drivers. - -Signed-off-by: Pavel Machek <pavel@suse.cz> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/base/power/sysfs.c | 24 ++++++++++++++++-------- - 1 file changed, 16 insertions(+), 8 deletions(-) - ---- gregkh-2.6.orig/drivers/base/power/sysfs.c -+++ gregkh-2.6/drivers/base/power/sysfs.c -@@ -27,22 +27,30 @@ - - static ssize_t state_show(struct device * dev, struct device_attribute *attr, char * buf) - { -- return sprintf(buf, "%u\n", dev->power.power_state.event); -+ if (dev->power.power_state.event) -+ return sprintf(buf, "2\n"); -+ else -+ return sprintf(buf, "0\n"); - } - - static ssize_t state_store(struct device * dev, struct device_attribute *attr, const char * buf, size_t n) - { - pm_message_t state; -- char * rest; -- int error = 0; -+ int error = -EINVAL; - -- state.event = simple_strtoul(buf, &rest, 10); -- if (*rest) -- return -EINVAL; -- if (state.event) -+ state.event = PM_EVENT_SUSPEND; -+ /* Older apps expected to write "3" here - confused with PCI D3 */ -+ if ((n == 1) && !strcmp(buf, "3")) - error = dpm_runtime_suspend(dev, state); -- else -+ -+ if ((n == 1) && !strcmp(buf, "2")) -+ error = dpm_runtime_suspend(dev, state); -+ -+ if ((n == 1) && !strcmp(buf, "0")) { - dpm_runtime_resume(dev); -+ error = 0; -+ } -+ - return error ? error : n; - } - diff --git a/driver/ib-sysfs-cleanup.patch b/driver/ib-sysfs-cleanup.patch deleted file mode 100644 index b55ebe4cd4d83..0000000000000 --- a/driver/ib-sysfs-cleanup.patch +++ /dev/null @@ -1,54 +0,0 @@ -From foo@baz.org Sun Jun 5 14:33:21 2005 -Date: Fri, 20 Jan 2006 14:08:59 -0800 -To: Greg KH <gregkh@suse.de> -From: Greg Kroah-Hartman <gregkh@suse.de> -Subject: IB: fix up major/minor sysfs interface for IB core - -Current IB code doesn't work with userspace programs that listen only to -the kernel event netlink socket as it is trying to create its own dev -interface. This small patch fixes this problem, and removes some -unneeded code as the driver core handles this logic for you -automatically. - -Acked-by: Sean Hefty <sean.hefty@intel.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - drivers/infiniband/core/ucm.c | 13 +------------ - 1 file changed, 1 insertion(+), 12 deletions(-) - ---- gregkh-2.6.orig/drivers/infiniband/core/ucm.c -+++ gregkh-2.6/drivers/infiniband/core/ucm.c -@@ -1319,15 +1319,6 @@ static struct class ucm_class = { - .release = ib_ucm_release_class_dev - }; - --static ssize_t show_dev(struct class_device *class_dev, char *buf) --{ -- struct ib_ucm_device *dev; -- -- dev = container_of(class_dev, struct ib_ucm_device, class_dev); -- return print_dev_t(buf, dev->dev.dev); --} --static CLASS_DEVICE_ATTR(dev, S_IRUGO, show_dev, NULL); -- - static ssize_t show_ibdev(struct class_device *class_dev, char *buf) - { - struct ib_ucm_device *dev; -@@ -1364,15 +1355,13 @@ static void ib_ucm_add_one(struct ib_dev - - ucm_dev->class_dev.class = &ucm_class; - ucm_dev->class_dev.dev = device->dma_device; -+ ucm_dev->class_dev.devt = ucm_dev->dev.dev; - snprintf(ucm_dev->class_dev.class_id, BUS_ID_SIZE, "ucm%d", - ucm_dev->devnum); - if (class_device_register(&ucm_dev->class_dev)) - goto err_cdev; - - if (class_device_create_file(&ucm_dev->class_dev, -- &class_device_attr_dev)) -- goto err_class; -- if (class_device_create_file(&ucm_dev->class_dev, - &class_device_attr_ibdev)) - goto err_class; - diff --git a/driver/kobject-don-t-oops-on-null-kobject.name.patch b/driver/kobject-don-t-oops-on-null-kobject.name.patch deleted file mode 100644 index 344960df77116..0000000000000 --- a/driver/kobject-don-t-oops-on-null-kobject.name.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 76306.1226@compuserve.com Mon Jan 16 14:06:48 2006 -Date: Thu, 12 Jan 2006 20:02:00 -0500 -From: Chuck Ebbert <76306.1226@compuserve.com> -Subject: kobject: don't oops on null kobject.name -To: Greg KH <greg@kroah.com> -Message-ID: <200601122004_MC3-1-B5C5-4B72@compuserve.com> -Content-Disposition: inline - -kobject_get_path() will oops if one of the component names is -NULL. Fix that by returning NULL instead of oopsing. - -Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> ---- - lib/kobject.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- gregkh-2.6.orig/lib/kobject.c -+++ gregkh-2.6/lib/kobject.c -@@ -72,6 +72,8 @@ static int get_kobj_path_length(struct k - * Add 1 to strlen for leading '/' of each level. - */ - do { -+ if (kobject_name(parent) == NULL) -+ return 0; - length += strlen(kobject_name(parent)) + 1; - parent = parent->parent; - } while (parent); -@@ -107,6 +109,8 @@ char *kobject_get_path(struct kobject *k - int len; - - len = get_kobj_path_length(kobj); -+ if (len == 0) -+ return NULL; - path = kmalloc(len, gfp_mask); - if (!path) - return NULL; diff --git a/driver/kobject_add-must-have-valid-name.patch b/driver/kobject_add-must-have-valid-name.patch deleted file mode 100644 index 9aff6be36252c..0000000000000 --- a/driver/kobject_add-must-have-valid-name.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Greg Kroah-Hartman <gregkh@suse.de> -Subject: kobject_add() must have a valid name in order to succeed. - -So we might as well check to verify this, and let the user know that -something is wrong if they didn't do it correctly, instead of oopsing -later on in kobject_get_name() or somewhere else. - - -Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> - ---- - lib/kobject.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- gregkh-2.6.orig/lib/kobject.c -+++ gregkh-2.6/lib/kobject.c -@@ -163,6 +163,11 @@ int kobject_add(struct kobject * kobj) - return -ENOENT; - if (!kobj->k_name) - kobj->k_name = kobj->name; -+ if (!kobj->k_name) { -+ pr_debug("kobject attempted to be registered with no name!\n"); -+ WARN_ON(1); -+ return -EINVAL; -+ } - parent = kobject_get(kobj->parent); - - pr_debug("kobject %s: registering. parent: %s, set: %s\n", diff --git a/driver/spi-spi_butterfly-restore-lost-deltas.patch b/driver/spi-spi_butterfly-restore-lost-deltas.patch deleted file mode 100644 index b3329c73f9fef..0000000000000 --- a/driver/spi-spi_butterfly-restore-lost-deltas.patch +++ /dev/null @@ -1,179 +0,0 @@ -From david-b@pacbell.net Sat Jan 21 13:21:44 2006 -From: David Brownell <david-b@pacbell.net> -To: Linus Torvalds <torvalds@osdl.org> -Subject: SPI: spi_butterfly, restore lost deltas -Date: Sat, 21 Jan 2006 13:21:43 -0800 -Cc: Greg KH <greg@kroah.com> -Message-Id: <200601211321.43845.david-b@pacbell.net> - -This resolves some minor version skew glitches that accumulated for the AVR -Butterfly adapter driver, which caused among other things the existence of -a duplicate Kconfig entry. Most of it boils down to comment updates, but in -one case it removes some now-superfluous code that would be better if not -copied into other controller-level drivers. - -Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> - ---- - Documentation/spi/butterfly | 23 +++++++++++++++++------ - drivers/spi/Kconfig | 10 ---------- - drivers/spi/spi_butterfly.c | 36 +++++++++++++++++------------------- - 3 files changed, 34 insertions(+), 35 deletions(-) - ---- gregkh-2.6.orig/drivers/spi/Kconfig -+++ gregkh-2.6/drivers/spi/Kconfig -@@ -75,16 +75,6 @@ config SPI_BUTTERFLY - inexpensive battery powered microcontroller evaluation board. - This same cable can be used to flash new firmware. - --config SPI_BUTTERFLY -- tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" -- depends on SPI_MASTER && PARPORT && EXPERIMENTAL -- select SPI_BITBANG -- help -- This uses a custom parallel port cable to connect to an AVR -- Butterfly <http://www.atmel.com/products/avr/butterfly>, an -- inexpensive battery powered microcontroller evaluation board. -- This same cable can be used to flash new firmware. -- - # - # Add new SPI master controllers in alphabetical order above this line - # ---- gregkh-2.6.orig/drivers/spi/spi_butterfly.c -+++ gregkh-2.6/drivers/spi/spi_butterfly.c -@@ -163,21 +163,20 @@ static void butterfly_chipselect(struct - struct butterfly *pp = spidev_to_pp(spi); - - /* set default clock polarity */ -- if (value) -+ if (value != BITBANG_CS_INACTIVE) - setsck(spi, spi->mode & SPI_CPOL); - - /* no chipselect on this USI link config */ - if (is_usidev(spi)) - return; - -- /* here, value == "activate or not" */ -- -- /* most PARPORT_CONTROL_* bits are negated */ -+ /* here, value == "activate or not"; -+ * most PARPORT_CONTROL_* bits are negated, so we must -+ * morph it to value == "bit value to write in control register" -+ */ - if (spi_cs_bit == PARPORT_CONTROL_INIT) - value = !value; - -- /* here, value == "bit value to write in control register" */ -- - parport_frob_control(pp->port, spi_cs_bit, value ? spi_cs_bit : 0); - } - -@@ -202,7 +201,9 @@ butterfly_txrx_word_mode0(struct spi_dev - - /* override default partitioning with cmdlinepart */ - static struct mtd_partition partitions[] = { { -- /* JFFS2 wants partitions of 4*N blocks for this device ... */ -+ /* JFFS2 wants partitions of 4*N blocks for this device, -+ * so sectors 0 and 1 can't be partitions by themselves. -+ */ - - /* sector 0 = 8 pages * 264 bytes/page (1 block) - * sector 1 = 248 pages * 264 bytes/page -@@ -316,8 +317,9 @@ static void butterfly_attach(struct parp - if (status < 0) - goto clean2; - -- /* Bus 1 lets us talk to at45db041b (firmware disables AVR) -- * or AVR (firmware resets at45, acts as spi slave) -+ /* Bus 1 lets us talk to at45db041b (firmware disables AVR SPI), AVR -+ * (firmware resets at45, acts as spi slave) or neither (we ignore -+ * both, AVR uses AT45). Here we expect firmware for the first option. - */ - pp->info[0].max_speed_hz = 15 * 1000 * 1000; - strcpy(pp->info[0].modalias, "mtd_dataflash"); -@@ -330,7 +332,9 @@ static void butterfly_attach(struct parp - pp->dataflash->dev.bus_id); - - #ifdef HAVE_USI -- /* even more custom AVR firmware */ -+ /* Bus 2 is only for talking to the AVR, and it can work no -+ * matter who masters bus 1; needs appropriate AVR firmware. -+ */ - pp->info[1].max_speed_hz = 10 /* ?? */ * 1000 * 1000; - strcpy(pp->info[1].modalias, "butterfly"); - // pp->info[1].platform_data = ... TBD ... ; -@@ -378,13 +382,8 @@ static void butterfly_detach(struct parp - pp = butterfly; - butterfly = NULL; - --#ifdef HAVE_USI -- spi_unregister_device(pp->butterfly); -- pp->butterfly = NULL; --#endif -- spi_unregister_device(pp->dataflash); -- pp->dataflash = NULL; -- -+ /* stop() unregisters child devices too */ -+ pdev = to_platform_device(pp->bitbang.master->cdev.dev); - status = spi_bitbang_stop(&pp->bitbang); - - /* turn off VCC */ -@@ -394,8 +393,6 @@ static void butterfly_detach(struct parp - parport_release(pp->pd); - parport_unregister_device(pp->pd); - -- pdev = to_platform_device(pp->bitbang.master->cdev.dev); -- - (void) spi_master_put(pp->bitbang.master); - - platform_device_unregister(pdev); -@@ -420,4 +417,5 @@ static void __exit butterfly_exit(void) - } - module_exit(butterfly_exit); - -+MODULE_DESCRIPTION("Parport Adapter driver for AVR Butterfly"); - MODULE_LICENSE("GPL"); ---- gregkh-2.6.orig/Documentation/spi/butterfly -+++ gregkh-2.6/Documentation/spi/butterfly -@@ -12,13 +12,20 @@ You can make this adapter from an old pr - directly to the Butterfly. Or (if you have the parts and skills) you - can come up with something fancier, providing ciruit protection to the - Butterfly and the printer port, or with a better power supply than two --signal pins from the printer port. -+signal pins from the printer port. Or for that matter, you can use -+similar cables to talk to many AVR boards, even a breadboard. -+ -+This is more powerful than "ISP programming" cables since it lets kernel -+SPI protocol drivers interact with the AVR, and could even let the AVR -+issue interrupts to them. Later, your protocol driver should work -+easily with a "real SPI controller", instead of this bitbanger. - - - The first cable connections will hook Linux up to one SPI bus, with the - AVR and a DataFlash chip; and to the AVR reset line. This is all you - need to reflash the firmware, and the pins are the standard Atmel "ISP" --connector pins (used also on non-Butterfly AVR boards). -+connector pins (used also on non-Butterfly AVR boards). On the parport -+side this is like "sp12" programming cables. - - Signal Butterfly Parport (DB-25) - ------ --------- --------------- -@@ -40,10 +47,14 @@ by clearing PORTB.[0-3]); (b) configure - SELECT = J400.PB0/nSS = pin 17/C3,nSELECT - GND = J400.GND = pin 24/GND - --The "USI" controller, using J405, can be used for a second SPI bus. That --would let you talk to the AVR over SPI, running firmware that makes it act --as an SPI slave, while letting either Linux or the AVR use the DataFlash. --There are plenty of spare parport pins to wire this one up, such as: -+Or you could flash firmware making the AVR into an SPI slave (keeping the -+DataFlash in reset) and tweak the spi_butterfly driver to make it bind to -+the driver for your custom SPI-based protocol. -+ -+The "USI" controller, using J405, can also be used for a second SPI bus. -+That would let you talk to the AVR using custom SPI-with-USI firmware, -+while letting either Linux or the AVR use the DataFlash. There are plenty -+of spare parport pins to wire this one up, such as: - - Signal Butterfly Parport (DB-25) - ------ --------- --------------- |