From: Greg Kroah-Hartman Date: Mon, 8 Aug 2016 13:41:57 +0000 (+0200) Subject: 3.14-stable patches X-Git-Tag: v3.14.75~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3433fbdc325dc8758bcac678e42141b302895d6a;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: can-at91_can-rx-queue-could-get-stuck-at-high-bus-load.patch can-fix-handling-of-unmodifiable-configuration-options-fix.patch can-fix-oops-caused-by-wrong-rtnl-dellink-usage.patch ipr-clear-interrupt-on-croc-crocodile-when-running-with-lsi.patch --- diff --git a/queue-3.14/can-at91_can-rx-queue-could-get-stuck-at-high-bus-load.patch b/queue-3.14/can-at91_can-rx-queue-could-get-stuck-at-high-bus-load.patch new file mode 100644 index 00000000000..eb786db3677 --- /dev/null +++ b/queue-3.14/can-at91_can-rx-queue-could-get-stuck-at-high-bus-load.patch @@ -0,0 +1,38 @@ +From 43200a4480cbbe660309621817f54cbb93907108 Mon Sep 17 00:00:00 2001 +From: Wolfgang Grandegger +Date: Mon, 13 Jun 2016 15:44:19 +0200 +Subject: can: at91_can: RX queue could get stuck at high bus load + +From: Wolfgang Grandegger + +commit 43200a4480cbbe660309621817f54cbb93907108 upstream. + +At high bus load it could happen that "at91_poll()" enters with all RX +message boxes filled up. If then at the end the "quota" is exceeded as +well, "rx_next" will not be reset to the first RX mailbox and hence the +interrupts remain disabled. + +Signed-off-by: Wolfgang Grandegger +Tested-by: Amr Bekhit +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/can/at91_can.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/drivers/net/can/at91_can.c ++++ b/drivers/net/can/at91_can.c +@@ -730,9 +730,10 @@ static int at91_poll_rx(struct net_devic + + /* upper group completed, look again in lower */ + if (priv->rx_next > get_mb_rx_low_last(priv) && +- quota > 0 && mb > get_mb_rx_last(priv)) { ++ mb > get_mb_rx_last(priv)) { + priv->rx_next = get_mb_rx_first(priv); +- goto again; ++ if (quota > 0) ++ goto again; + } + + return received; diff --git a/queue-3.14/can-fix-handling-of-unmodifiable-configuration-options-fix.patch b/queue-3.14/can-fix-handling-of-unmodifiable-configuration-options-fix.patch new file mode 100644 index 00000000000..17a7f8841f4 --- /dev/null +++ b/queue-3.14/can-fix-handling-of-unmodifiable-configuration-options-fix.patch @@ -0,0 +1,37 @@ +From bce271f255dae8335dc4d2ee2c4531e09cc67f5a Mon Sep 17 00:00:00 2001 +From: Oliver Hartkopp +Date: Tue, 21 Jun 2016 12:14:07 +0200 +Subject: can: fix handling of unmodifiable configuration options fix + +From: Oliver Hartkopp + +commit bce271f255dae8335dc4d2ee2c4531e09cc67f5a upstream. + +With upstream commit bb208f144cf3f59 (can: fix handling of unmodifiable +configuration options) a new can_validate() function was introduced. + +When invoking 'ip link set can0 type can' without any configuration data +can_validate() tries to validate the content without taking into account that +there's totally no content. This patch adds a check for missing content. + +Reported-by: ajneu +Signed-off-by: Oliver Hartkopp +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/can/dev.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/net/can/dev.c ++++ b/drivers/net/can/dev.c +@@ -665,6 +665,9 @@ static int can_changelink(struct net_dev + } + } + ++ if (!data) ++ return 0; ++ + if (data[IFLA_CAN_CTRLMODE]) { + struct can_ctrlmode *cm; + diff --git a/queue-3.14/can-fix-oops-caused-by-wrong-rtnl-dellink-usage.patch b/queue-3.14/can-fix-oops-caused-by-wrong-rtnl-dellink-usage.patch new file mode 100644 index 00000000000..310b86cad4c --- /dev/null +++ b/queue-3.14/can-fix-oops-caused-by-wrong-rtnl-dellink-usage.patch @@ -0,0 +1,50 @@ +From 25e1ed6e64f52a692ba3191c4fde650aab3ecc07 Mon Sep 17 00:00:00 2001 +From: Oliver Hartkopp +Date: Tue, 21 Jun 2016 15:45:47 +0200 +Subject: can: fix oops caused by wrong rtnl dellink usage + +From: Oliver Hartkopp + +commit 25e1ed6e64f52a692ba3191c4fde650aab3ecc07 upstream. + +For 'real' hardware CAN devices the netlink interface is used to set CAN +specific communication parameters. Real CAN hardware can not be created nor +removed with the ip tool ... + +This patch adds a private dellink function for the CAN device driver interface +that does just nothing. + +It's a follow up to commit 993e6f2fd ("can: fix oops caused by wrong rtnl +newlink usage") but for dellink. + +Reported-by: ajneu +Signed-off-by: Oliver Hartkopp +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/can/dev.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/net/can/dev.c ++++ b/drivers/net/can/dev.c +@@ -771,6 +771,11 @@ static int can_newlink(struct net *src_n + return -EOPNOTSUPP; + } + ++static void can_dellink(struct net_device *dev, struct list_head *head) ++{ ++ return; ++} ++ + static struct rtnl_link_ops can_link_ops __read_mostly = { + .kind = "can", + .maxtype = IFLA_CAN_MAX, +@@ -778,6 +783,7 @@ static struct rtnl_link_ops can_link_ops + .setup = can_setup, + .newlink = can_newlink, + .changelink = can_changelink, ++ .dellink = can_dellink, + .get_size = can_get_size, + .fill_info = can_fill_info, + .get_xstats_size = can_get_xstats_size, diff --git a/queue-3.14/ipr-clear-interrupt-on-croc-crocodile-when-running-with-lsi.patch b/queue-3.14/ipr-clear-interrupt-on-croc-crocodile-when-running-with-lsi.patch new file mode 100644 index 00000000000..b015e49c66d --- /dev/null +++ b/queue-3.14/ipr-clear-interrupt-on-croc-crocodile-when-running-with-lsi.patch @@ -0,0 +1,31 @@ +From 54e430bbd490e18ab116afa4cd90dcc45787b3df Mon Sep 17 00:00:00 2001 +From: Brian King +Date: Mon, 27 Jun 2016 09:09:40 -0500 +Subject: ipr: Clear interrupt on croc/crocodile when running with LSI + +From: Brian King + +commit 54e430bbd490e18ab116afa4cd90dcc45787b3df upstream. + +If we fall back to using LSI on the Croc or Crocodile chip we need to +clear the interrupt so we don't hang the system. + +Tested-by: Benjamin Herrenschmidt +Signed-off-by: Brian King +Signed-off-by: Martin K. Petersen +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/scsi/ipr.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/scsi/ipr.c ++++ b/drivers/scsi/ipr.c +@@ -9644,6 +9644,7 @@ static int ipr_probe_ioa(struct pci_dev + ioa_cfg->intr_flag = IPR_USE_MSI; + else { + ioa_cfg->intr_flag = IPR_USE_LSI; ++ ioa_cfg->clear_isr = 1; + ioa_cfg->nvectors = 1; + dev_info(&pdev->dev, "Cannot enable MSI.\n"); + } diff --git a/queue-3.14/series b/queue-3.14/series index c1c8247a016..d75ef0de440 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -13,3 +13,7 @@ arc-use-asl-assembler-mnemonic.patch ext4-verify-extent-header-depth.patch qeth-delete-napi-struct-when-removing-a-qeth-device.patch mmc-block-fix-packed-command-header-endianness.patch +can-at91_can-rx-queue-could-get-stuck-at-high-bus-load.patch +can-fix-handling-of-unmodifiable-configuration-options-fix.patch +can-fix-oops-caused-by-wrong-rtnl-dellink-usage.patch +ipr-clear-interrupt-on-croc-crocodile-when-running-with-lsi.patch