From 11926c2fd831fd9847b163530ddcec13d53fbdef Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 10 Sep 2013 13:47:44 +0000 Subject: kernel: fix arch-dependent bug in hso module Currently, the module causes an oops at least on rt5350. These patches have been accepted upstream at: git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git Signed-off-by: Daniel Gimpelevich SVN-Revision: 37931 --- .../007-hso-Earlier-catch-of-error-condition.patch | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 target/linux/generic/patches-3.10/007-hso-Earlier-catch-of-error-condition.patch (limited to 'target/linux/generic/patches-3.10/007-hso-Earlier-catch-of-error-condition.patch') diff --git a/target/linux/generic/patches-3.10/007-hso-Earlier-catch-of-error-condition.patch b/target/linux/generic/patches-3.10/007-hso-Earlier-catch-of-error-condition.patch new file mode 100644 index 0000000000..9b31caf06f --- /dev/null +++ b/target/linux/generic/patches-3.10/007-hso-Earlier-catch-of-error-condition.patch @@ -0,0 +1,45 @@ +From 35e57e1b49a351aa804dab6010cd46ae6112a541 Mon Sep 17 00:00:00 2001 +From: Daniel Gimpelevich +Date: Wed, 21 Aug 2013 01:43:07 -0700 +Subject: [PATCH 1/2] hso: Earlier catch of error condition + +There is no need to get an interface specification if we know it's the +wrong one. + +Signed-off-by: Daniel Gimpelevich +Acked-by: Greg Kroah-Hartman +Signed-off-by: David S. Miller +--- + drivers/net/usb/hso.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c +index cba1d46..5fb36ed 100644 +--- a/drivers/net/usb/hso.c ++++ b/drivers/net/usb/hso.c +@@ -2886,6 +2886,11 @@ static int hso_probe(struct usb_interface *interface, + struct hso_shared_int *shared_int; + struct hso_device *tmp_dev = NULL; + ++ if (interface->cur_altsetting->desc.bInterfaceClass != 0xFF) { ++ dev_err(&interface->dev, "Not our interface\n"); ++ return -ENODEV; ++ } ++ + if_num = interface->altsetting->desc.bInterfaceNumber; + + /* Get the interface/port specification from either driver_info or from +@@ -2895,10 +2900,6 @@ static int hso_probe(struct usb_interface *interface, + else + port_spec = hso_get_config_data(interface); + +- if (interface->cur_altsetting->desc.bInterfaceClass != 0xFF) { +- dev_err(&interface->dev, "Not our interface\n"); +- return -ENODEV; +- } + /* Check if we need to switch to alt interfaces prior to port + * configuration */ + if (interface->num_altsetting > 1) +-- +1.7.9.5 + -- cgit v1.2.3