diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-01 14:43:35 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-01 14:43:35 -0700 |
commit | e17b30104d0338a003aec4e6fa088f2833844750 (patch) | |
tree | e33dbf20508d18a0156191bc36d40a0a7d04dc34 | |
parent | 90fe4afef00c686025d4d6807e5d416ee21d3ce2 (diff) | |
download | longterm-queue-2.6.33-e17b30104d0338a003aec4e6fa088f2833844750.tar.gz |
.33 patches
5 files changed, 242 insertions, 0 deletions
diff --git a/queue-2.6.33/bridge-send-proper-message_age-in-config-bpdu.patch b/queue-2.6.33/bridge-send-proper-message_age-in-config-bpdu.patch new file mode 100644 index 0000000..758a205 --- /dev/null +++ b/queue-2.6.33/bridge-send-proper-message_age-in-config-bpdu.patch @@ -0,0 +1,82 @@ +From 0c03150e7ea8f7fcd03cfef29385e0010b22ee92 Mon Sep 17 00:00:00 2001 +From: stephen hemminger <shemminger@vyatta.com> +Date: Fri, 22 Jul 2011 07:47:06 +0000 +Subject: bridge: send proper message_age in config BPDU + +From: stephen hemminger <shemminger@vyatta.com> + +commit 0c03150e7ea8f7fcd03cfef29385e0010b22ee92 upstream. + +A bridge topology with three systems: + + +------+ +------+ + | A(2) |--| B(1) | + +------+ +------+ + \ / + +------+ + | C(3) | + +------+ + +What is supposed to happen: + * bridge with the lowest ID is elected root (for example: B) + * C detects that A->C is higher cost path and puts in blocking state + +What happens. Bridge with lowest id (B) is elected correctly as +root and things start out fine initially. But then config BPDU +doesn't get transmitted from A -> C. Because of that +the link from A-C is transistioned to the forwarding state. + +The root cause of this is that the configuration messages +is generated with bogus message age, and dropped before +sending. + +In the standardmessage_age is supposed to be: + the time since the generation of the Configuration BPDU by + the Root that instigated the generation of this Configuration BPDU. + +Reimplement this by recording the timestamp (age + jiffies) when +recording config information. The old code incorrectly used the time +elapsed on the ageing timer which was incorrect. + +See also: + https://bugzilla.vyatta.com/show_bug.cgi?id=7164 + +Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> +Signed-off-by: David S. Miller <davem@davemloft.net> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + net/bridge/br_private.h | 1 + + net/bridge/br_stp.c | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +--- a/net/bridge/br_private.h ++++ b/net/bridge/br_private.h +@@ -75,6 +75,7 @@ struct net_bridge_port + bridge_id designated_bridge; + u32 path_cost; + u32 designated_cost; ++ unsigned long designated_age; + + struct timer_list forward_delay_timer; + struct timer_list hold_timer; +--- a/net/bridge/br_stp.c ++++ b/net/bridge/br_stp.c +@@ -165,8 +165,7 @@ void br_transmit_config(struct net_bridg + else { + struct net_bridge_port *root + = br_get_port(br, br->root_port); +- bpdu.message_age = br->max_age +- - (root->message_age_timer.expires - jiffies) ++ bpdu.message_age = (jiffies - root->designated_age) + + MESSAGE_AGE_INCR; + } + bpdu.max_age = br->max_age; +@@ -190,6 +189,7 @@ static inline void br_record_config_info + p->designated_cost = bpdu->root_path_cost; + p->designated_bridge = bpdu->bridge_id; + p->designated_port = bpdu->port_id; ++ p->designated_age = jiffies + bpdu->message_age; + + mod_timer(&p->message_age_timer, jiffies + + (p->br->max_age - bpdu->message_age)); diff --git a/queue-2.6.33/davinci-dm365-evm-fix-video-input-mux-bits.patch b/queue-2.6.33/davinci-dm365-evm-fix-video-input-mux-bits.patch new file mode 100644 index 0000000..5091e0c --- /dev/null +++ b/queue-2.6.33/davinci-dm365-evm-fix-video-input-mux-bits.patch @@ -0,0 +1,43 @@ +From 9daedd833a38edd90cf7baa1b1fcf61c3a0721e3 Mon Sep 17 00:00:00 2001 +From: Jon Povey <jon.povey@racelogic.co.uk> +Date: Tue, 19 Jul 2011 12:30:11 +0900 +Subject: davinci: DM365 EVM: fix video input mux bits + +From: Jon Povey <jon.povey@racelogic.co.uk> + +commit 9daedd833a38edd90cf7baa1b1fcf61c3a0721e3 upstream. + +Video input mux settings for tvp7002 and imager inputs were swapped. +Comment was correct. + +Tested on EVM with tvp7002 input. + +Signed-off-by: Jon Povey <jon.povey@racelogic.co.uk> +Acked-by: Manjunath Hadli <manjunath.hadli@ti.com> +Signed-off-by: Sekhar Nori <nsekhar@ti.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + arch/arm/mach-davinci/board-dm365-evm.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/arch/arm/mach-davinci/board-dm365-evm.c ++++ b/arch/arm/mach-davinci/board-dm365-evm.c +@@ -453,7 +453,7 @@ fail: + */ + if (have_imager()) { + label = "HD imager"; +- mux |= 1; ++ mux |= 2; + + /* externally mux MMC1/ENET/AIC33 to imager */ + mux |= BIT(6) | BIT(5) | BIT(3); +@@ -474,7 +474,7 @@ fail: + resets &= ~BIT(1); + + if (have_tvp7002()) { +- mux |= 2; ++ mux |= 1; + resets &= ~BIT(2); + label = "tvp7002 HD"; + } else { diff --git a/queue-2.6.33/libata-fix-unexpectedly-frozen-port-after-ata_eh_reset.patch b/queue-2.6.33/libata-fix-unexpectedly-frozen-port-after-ata_eh_reset.patch new file mode 100644 index 0000000..91bce8a --- /dev/null +++ b/queue-2.6.33/libata-fix-unexpectedly-frozen-port-after-ata_eh_reset.patch @@ -0,0 +1,70 @@ +From 8c56cacc724c7650b893d43068fa66044aa29a61 Mon Sep 17 00:00:00 2001 +From: Tejun Heo <tj@kernel.org> +Date: Wed, 25 May 2011 13:19:39 +0200 +Subject: libata: fix unexpectedly frozen port after ata_eh_reset() + +From: Tejun Heo <tj@kernel.org> + +commit 8c56cacc724c7650b893d43068fa66044aa29a61 upstream. + +To work around controllers which can't properly plug events while +reset, ata_eh_reset() clears error states and ATA_PFLAG_EH_PENDING +after reset but before RESET is marked done. As reset is the final +recovery action and full verification of devices including onlineness +and classfication match is done afterwards, this shouldn't lead to +lost devices or missed hotplug events. + +Unfortunately, it forgot to thaw the port when clearing EH_PENDING, so +if the condition happens after resetting an empty port, the port could +be left frozen and EH will end without thawing it, making the port +unresponsive to further hotplug events. + +Thaw if the port is frozen after clearing EH_PENDING. This problem is +reported by Bruce Stenning in the following thread. + + http://thread.gmane.org/gmane.linux.kernel/1123265 + +stable: I think we should weather this patch a bit longer in -rcX + before sending it to -stable. Please wait at least a month + after this patch makes upstream. Thanks. + +-v2: Fixed spelling in the comment per Dave Howorth. + +Signed-off-by: Tejun Heo <tj@kernel.org> +Reported-by: Bruce Stenning <b.stenning@indigovision.com> +Cc: Dave Howorth <dhoworth@mrc-lmb.cam.ac.uk> +Signed-off-by: Jeff Garzik <jgarzik@pobox.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + drivers/ata/libata-eh.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +--- a/drivers/ata/libata-eh.c ++++ b/drivers/ata/libata-eh.c +@@ -2716,10 +2716,11 @@ int ata_eh_reset(struct ata_link *link, + } + + /* +- * Some controllers can't be frozen very well and may set +- * spuruious error conditions during reset. Clear accumulated +- * error information. As reset is the final recovery action, +- * nothing is lost by doing this. ++ * Some controllers can't be frozen very well and may set spurious ++ * error conditions during reset. Clear accumulated error ++ * information and re-thaw the port if frozen. As reset is the ++ * final recovery action and we cross check link onlineness against ++ * device classification later, no hotplug event is lost by this. + */ + spin_lock_irqsave(link->ap->lock, flags); + memset(&link->eh_info, 0, sizeof(link->eh_info)); +@@ -2728,6 +2729,9 @@ int ata_eh_reset(struct ata_link *link, + ap->pflags &= ~ATA_PFLAG_EH_PENDING; + spin_unlock_irqrestore(link->ap->lock, flags); + ++ if (ap->pflags & ATA_PFLAG_FROZEN) ++ ata_eh_thaw_port(ap); ++ + /* + * Make sure onlineness and classification result correspond. + * Hotplug could have happened during reset and some diff --git a/queue-2.6.33/series b/queue-2.6.33/series index 85a251b..06e7d2c 100644 --- a/queue-2.6.33/series +++ b/queue-2.6.33/series @@ -11,3 +11,7 @@ hwmon-max1111-fix-race-condition-causing-null-pointer-exception.patch usb-pl2303-add-adlink-nd-6530-usb-ids.patch usb-pl2303.h-checkpatch-cleanups.patch usb-serial-add-ids-for-winchiphead-usb-rs232-adapter.patch +bridge-send-proper-message_age-in-config-bpdu.patch +davinci-dm365-evm-fix-video-input-mux-bits.patch +libata-fix-unexpectedly-frozen-port-after-ata_eh_reset.patch +x86-make-dell-latitude-e5420-use-reboot-pci.patch diff --git a/queue-2.6.33/x86-make-dell-latitude-e5420-use-reboot-pci.patch b/queue-2.6.33/x86-make-dell-latitude-e5420-use-reboot-pci.patch new file mode 100644 index 0000000..53d7a2b --- /dev/null +++ b/queue-2.6.33/x86-make-dell-latitude-e5420-use-reboot-pci.patch @@ -0,0 +1,43 @@ +From b7798d28ec15d20fd34b70fa57eb13f0cf6d1ecd Mon Sep 17 00:00:00 2001 +From: Daniel J Blueman <daniel.blueman@gmail.com> +Date: Fri, 13 May 2011 09:04:59 +0800 +Subject: x86: Make Dell Latitude E5420 use reboot=pci + +From: Daniel J Blueman <daniel.blueman@gmail.com> + +commit b7798d28ec15d20fd34b70fa57eb13f0cf6d1ecd upstream. + +Rebooting on the Dell E5420 often hangs with the keyboard or ACPI +methods, but is reliable via the PCI method. + +[ hpa: this was deferred because we believed for a long time that the + recent reshuffling of the boot priorities in commit + 660e34cebf0a11d54f2d5dd8838607452355f321 fixed this platform. + Unfortunately that turned out to be incorrect. ] + +Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com> +Link: http://lkml.kernel.org/r/1305248699-2347-1-git-send-email-daniel.blueman@gmail.com +Signed-off-by: H. Peter Anvin <hpa@zytor.com> +Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> + +--- + arch/x86/kernel/reboot.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/arch/x86/kernel/reboot.c ++++ b/arch/x86/kernel/reboot.c +@@ -469,6 +469,14 @@ static struct dmi_system_id __initdata p + DMI_MATCH(DMI_PRODUCT_NAME, "iMac9,1"), + }, + }, ++ { /* Handle problems with rebooting on the Latitude E5420. */ ++ .callback = set_pci_reboot, ++ .ident = "Dell Latitude E5420", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"), ++ }, ++ }, + { } + }; + |