From 1c573ade5f4d8d030b6fe0dfd92447be767a41e2 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 29 Sep 2010 01:54:09 +0000 Subject: [PATCH] Update to 2.6.36-rc6 svn path=/dists/trunk/linux-2.6/; revision=16367 --- debian/changelog | 11 +- ...nitialization-of-interface-minor-num.patch | 122 ------------------ ...cinfo-is-populated-during-mode_fixup.patch | 42 ------ debian/patches/series/1~experimental.2 | 2 - 4 files changed, 7 insertions(+), 170 deletions(-) delete mode 100644 debian/patches/bugfix/all/USB-fix-bug-in-initialization-of-interface-minor-num.patch delete mode 100644 debian/patches/bugfix/x86/drm-i915-Ensure-that-the-crtcinfo-is-populated-during-mode_fixup.patch delete mode 100644 debian/patches/series/1~experimental.2 diff --git a/debian/changelog b/debian/changelog index 8f15a0a08..8587f49eb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,13 @@ -linux-2.6 (2.6.36~rc5-1~experimental.2) UNRELEASED; urgency=low +linux-2.6 (2.6.36~rc6-1~experimental.1) UNRELEASED; urgency=low + + * New upstream release candidate + - drm/i915: Ensure that the crtcinfo is populated during mode_fixup() + (Closes: #592415) + - USB: fix bug in initialization of interface minor numbers + (Closes: #598207) [ Ben Hutchings ] * linux-base: Remove dependency on libapt-pkg-perl (Closes: #589996, really) - * drm/i915: Ensure that the crtcinfo is populated during mode_fixup() - (Closes: #592415) - * USB: fix bug in initialization of interface minor numbers (Closes: #598207) -- Ben Hutchings Sun, 26 Sep 2010 15:34:10 +0100 diff --git a/debian/patches/bugfix/all/USB-fix-bug-in-initialization-of-interface-minor-num.patch b/debian/patches/bugfix/all/USB-fix-bug-in-initialization-of-interface-minor-num.patch deleted file mode 100644 index f1bcc5054..000000000 --- a/debian/patches/bugfix/all/USB-fix-bug-in-initialization-of-interface-minor-num.patch +++ /dev/null @@ -1,122 +0,0 @@ -From: Alan Stern -Date: Tue, 21 Sep 2010 15:01:53 -0400 -Subject: [PATCH] USB: fix bug in initialization of interface minor numbers - -commit 0026e00523a85b90a92a93ddf6660939ecef3e54 upstream. - -Recent changes in the usbhid layer exposed a bug in usbcore. If -CONFIG_USB_DYNAMIC_MINORS is enabled then an interface may be assigned -a minor number of 0. However interfaces that aren't registered as USB -class devices also have their minor number set to 0, during -initialization. As a result usb_find_interface() may return the -wrong interface, leading to a crash. - -This patch (as1418) fixes the problem by initializing every -interface's minor number to -1. It also cleans up the -usb_register_dev() function, which besides being somewhat awkwardly -written, does not unwind completely on all its error paths. - -Signed-off-by: Alan Stern -Tested-by: Philip J. Turmel -Tested-by: Gabriel Craciunescu -Tested-by: Alex Riesen -Tested-by: Matthias Bayer -CC: Jiri Kosina -Cc: stable -Signed-off-by: Greg Kroah-Hartman ---- - drivers/usb/core/file.c | 35 ++++++++++++++++------------------- - drivers/usb/core/message.c | 1 + - 2 files changed, 17 insertions(+), 19 deletions(-) - -diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c -index f06f5db..1e6ccef 100644 ---- a/drivers/usb/core/file.c -+++ b/drivers/usb/core/file.c -@@ -159,9 +159,9 @@ void usb_major_cleanup(void) - int usb_register_dev(struct usb_interface *intf, - struct usb_class_driver *class_driver) - { -- int retval = -EINVAL; -+ int retval; - int minor_base = class_driver->minor_base; -- int minor = 0; -+ int minor; - char name[20]; - char *temp; - -@@ -173,12 +173,17 @@ int usb_register_dev(struct usb_interface *intf, - */ - minor_base = 0; - #endif -- intf->minor = -1; -- -- dbg ("looking for a minor, starting at %d", minor_base); - - if (class_driver->fops == NULL) -- goto exit; -+ return -EINVAL; -+ if (intf->minor >= 0) -+ return -EADDRINUSE; -+ -+ retval = init_usb_class(); -+ if (retval) -+ return retval; -+ -+ dev_dbg(&intf->dev, "looking for a minor, starting at %d", minor_base); - - down_write(&minor_rwsem); - for (minor = minor_base; minor < MAX_USB_MINORS; ++minor) { -@@ -186,20 +191,12 @@ int usb_register_dev(struct usb_interface *intf, - continue; - - usb_minors[minor] = class_driver->fops; -- -- retval = 0; -+ intf->minor = minor; - break; - } - up_write(&minor_rwsem); -- -- if (retval) -- goto exit; -- -- retval = init_usb_class(); -- if (retval) -- goto exit; -- -- intf->minor = minor; -+ if (intf->minor < 0) -+ return -EXFULL; - - /* create a usb class device for this usb interface */ - snprintf(name, sizeof(name), class_driver->name, minor - minor_base); -@@ -213,11 +210,11 @@ int usb_register_dev(struct usb_interface *intf, - "%s", temp); - if (IS_ERR(intf->usb_dev)) { - down_write(&minor_rwsem); -- usb_minors[intf->minor] = NULL; -+ usb_minors[minor] = NULL; -+ intf->minor = -1; - up_write(&minor_rwsem); - retval = PTR_ERR(intf->usb_dev); - } --exit: - return retval; - } - EXPORT_SYMBOL_GPL(usb_register_dev); -diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c -index 844683e..9f0ce7d 100644 ---- a/drivers/usb/core/message.c -+++ b/drivers/usb/core/message.c -@@ -1802,6 +1802,7 @@ free_interfaces: - intf->dev.groups = usb_interface_groups; - intf->dev.dma_mask = dev->dev.dma_mask; - INIT_WORK(&intf->reset_ws, __usb_queue_reset_device); -+ intf->minor = -1; - device_initialize(&intf->dev); - dev_set_name(&intf->dev, "%d-%s:%d.%d", - dev->bus->busnum, dev->devpath, --- -1.7.1 - diff --git a/debian/patches/bugfix/x86/drm-i915-Ensure-that-the-crtcinfo-is-populated-during-mode_fixup.patch b/debian/patches/bugfix/x86/drm-i915-Ensure-that-the-crtcinfo-is-populated-during-mode_fixup.patch deleted file mode 100644 index 685c669e6..000000000 --- a/debian/patches/bugfix/x86/drm-i915-Ensure-that-the-crtcinfo-is-populated-during-mode_fixup.patch +++ /dev/null @@ -1,42 +0,0 @@ -From: Chris Wilson -Date: Sun, 12 Sep 2010 18:25:19 +0100 -Subject: [PATCH] drm/i915: Ensure that the crtcinfo is populated during mode_fixup() - -commit 532db7fe1fd75f20f3abf959419d160fb7850aff upstream. - -This should fix the mysterious mode setting failures reported during -boot up and after resume, generally for i8xx class machines. - -Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=16478 -Signed-off-by: Chris Wilson ---- - drivers/gpu/drm/i915/intel_display.c | 8 ++++++++ - 1 files changed, 8 insertions(+), 0 deletions(-) - -diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c -index 161f6ea..1698c52 100644 ---- a/drivers/gpu/drm/i915/intel_display.c -+++ b/drivers/gpu/drm/i915/intel_display.c -@@ -2477,11 +2477,19 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc, - struct drm_display_mode *adjusted_mode) - { - struct drm_device *dev = crtc->dev; -+ - if (HAS_PCH_SPLIT(dev)) { - /* FDI link clock is fixed at 2.7G */ - if (mode->clock * 3 > IRONLAKE_FDI_FREQ * 4) - return false; - } -+ -+ /* XXX some encoders set the crtcinfo, others don't. -+ * Obviously we need some form of conflict resolution here... -+ */ -+ if (adjusted_mode->crtc_htotal == 0) -+ drm_mode_set_crtcinfo(adjusted_mode, 0); -+ - return true; - } - --- -1.7.3 - diff --git a/debian/patches/series/1~experimental.2 b/debian/patches/series/1~experimental.2 deleted file mode 100644 index 31905c2b9..000000000 --- a/debian/patches/series/1~experimental.2 +++ /dev/null @@ -1,2 +0,0 @@ -+ bugfix/x86/drm-i915-Ensure-that-the-crtcinfo-is-populated-during-mode_fixup.patch -+ bugfix/all/USB-fix-bug-in-initialization-of-interface-minor-num.patch