From: Greg Kroah-Hartman Date: Fri, 5 Jun 2020 13:53:22 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v5.7.1~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=474c089d9189b7c79732ac7dcdfa2eab8dd443e7;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: airo-fix-read-overflows-sending-packets.patch net-dsa-mt7530-set-cpu-port-to-fallback-mode.patch scsi-ufs-release-clock-if-dma-map-fails.patch --- diff --git a/queue-4.19/airo-fix-read-overflows-sending-packets.patch b/queue-4.19/airo-fix-read-overflows-sending-packets.patch new file mode 100644 index 00000000000..4cb60b4d945 --- /dev/null +++ b/queue-4.19/airo-fix-read-overflows-sending-packets.patch @@ -0,0 +1,62 @@ +From 11e7a91994c29da96d847f676be023da6a2c1359 Mon Sep 17 00:00:00 2001 +From: Dan Carpenter +Date: Wed, 27 May 2020 21:48:30 +0300 +Subject: airo: Fix read overflows sending packets + +From: Dan Carpenter + +commit 11e7a91994c29da96d847f676be023da6a2c1359 upstream. + +The problem is that we always copy a minimum of ETH_ZLEN (60) bytes from +skb->data even when skb->len is less than ETH_ZLEN so it leads to a read +overflow. + +The fix is to pad skb->data to at least ETH_ZLEN bytes. + +Cc: +Reported-by: Hu Jiahui +Signed-off-by: Dan Carpenter +Reviewed-by: Eric Dumazet +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20200527184830.GA1164846@mwanda +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/cisco/airo.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/drivers/net/wireless/cisco/airo.c ++++ b/drivers/net/wireless/cisco/airo.c +@@ -1928,6 +1928,10 @@ static netdev_tx_t mpi_start_xmit(struct + airo_print_err(dev->name, "%s: skb == NULL!",__func__); + return NETDEV_TX_OK; + } ++ if (skb_padto(skb, ETH_ZLEN)) { ++ dev->stats.tx_dropped++; ++ return NETDEV_TX_OK; ++ } + npacks = skb_queue_len (&ai->txq); + + if (npacks >= MAXTXQ - 1) { +@@ -2130,6 +2134,10 @@ static netdev_tx_t airo_start_xmit(struc + airo_print_err(dev->name, "%s: skb == NULL!", __func__); + return NETDEV_TX_OK; + } ++ if (skb_padto(skb, ETH_ZLEN)) { ++ dev->stats.tx_dropped++; ++ return NETDEV_TX_OK; ++ } + + /* Find a vacant FID */ + for( i = 0; i < MAX_FIDS / 2 && (fids[i] & 0xffff0000); i++ ); +@@ -2204,6 +2212,10 @@ static netdev_tx_t airo_start_xmit11(str + airo_print_err(dev->name, "%s: skb == NULL!", __func__); + return NETDEV_TX_OK; + } ++ if (skb_padto(skb, ETH_ZLEN)) { ++ dev->stats.tx_dropped++; ++ return NETDEV_TX_OK; ++ } + + /* Find a vacant FID */ + for( i = MAX_FIDS / 2; i < MAX_FIDS && (fids[i] & 0xffff0000); i++ ); diff --git a/queue-4.19/net-dsa-mt7530-set-cpu-port-to-fallback-mode.patch b/queue-4.19/net-dsa-mt7530-set-cpu-port-to-fallback-mode.patch new file mode 100644 index 00000000000..5045a865978 --- /dev/null +++ b/queue-4.19/net-dsa-mt7530-set-cpu-port-to-fallback-mode.patch @@ -0,0 +1,71 @@ +From 38152ea37d8bdaffa22603e0a5b5b86cfa8714c9 Mon Sep 17 00:00:00 2001 +From: DENG Qingfang +Date: Wed, 13 May 2020 23:37:17 +0800 +Subject: net: dsa: mt7530: set CPU port to fallback mode + +From: DENG Qingfang + +commit 38152ea37d8bdaffa22603e0a5b5b86cfa8714c9 upstream. + +Currently, setting a bridge's self PVID to other value and deleting +the default VID 1 renders untagged ports of that VLAN unable to talk to +the CPU port: + + bridge vlan add dev br0 vid 2 pvid untagged self + bridge vlan del dev br0 vid 1 self + bridge vlan add dev sw0p0 vid 2 pvid untagged + bridge vlan del dev sw0p0 vid 1 + # br0 cannot send untagged frames out of sw0p0 anymore + +That is because the CPU port is set to security mode and its PVID is +still 1, and untagged frames are dropped due to VLAN member violation. + +Set the CPU port to fallback mode so untagged frames can pass through. + +Fixes: 83163f7dca56 ("net: dsa: mediatek: add VLAN support for MT7530") +Signed-off-by: DENG Qingfang +Reviewed-by: Florian Fainelli +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/dsa/mt7530.c | 11 ++++++++--- + drivers/net/dsa/mt7530.h | 6 ++++++ + 2 files changed, 14 insertions(+), 3 deletions(-) + +--- a/drivers/net/dsa/mt7530.c ++++ b/drivers/net/dsa/mt7530.c +@@ -860,10 +860,15 @@ mt7530_port_set_vlan_aware(struct dsa_sw + PCR_MATRIX_MASK, PCR_MATRIX(MT7530_ALL_MEMBERS)); + + /* Trapped into security mode allows packet forwarding through VLAN +- * table lookup. ++ * table lookup. CPU port is set to fallback mode to let untagged ++ * frames pass through. + */ +- mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, +- MT7530_PORT_SECURITY_MODE); ++ if (dsa_is_cpu_port(ds, port)) ++ mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, ++ MT7530_PORT_FALLBACK_MODE); ++ else ++ mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK, ++ MT7530_PORT_SECURITY_MODE); + + /* Set the port as a user port which is to be able to recognize VID + * from incoming packets before fetching entry within the VLAN table. +--- a/drivers/net/dsa/mt7530.h ++++ b/drivers/net/dsa/mt7530.h +@@ -148,6 +148,12 @@ enum mt7530_port_mode { + /* Port Matrix Mode: Frames are forwarded by the PCR_MATRIX members. */ + MT7530_PORT_MATRIX_MODE = PORT_VLAN(0), + ++ /* Fallback Mode: Forward received frames with ingress ports that do ++ * not belong to the VLAN member. Frames whose VID is not listed on ++ * the VLAN table are forwarded by the PCR_MATRIX members. ++ */ ++ MT7530_PORT_FALLBACK_MODE = PORT_VLAN(1), ++ + /* Security Mode: Discard any frame due to ingress membership + * violation or VID missed on the VLAN table. + */ diff --git a/queue-4.19/scsi-ufs-release-clock-if-dma-map-fails.patch b/queue-4.19/scsi-ufs-release-clock-if-dma-map-fails.patch new file mode 100644 index 00000000000..5e3c4aac8e6 --- /dev/null +++ b/queue-4.19/scsi-ufs-release-clock-if-dma-map-fails.patch @@ -0,0 +1,36 @@ +From 17c7d35f141ef6158076adf3338f115f64fcf760 Mon Sep 17 00:00:00 2001 +From: Can Guo +Date: Thu, 5 Dec 2019 02:14:33 +0000 +Subject: scsi: ufs: Release clock if DMA map fails + +From: Can Guo + +commit 17c7d35f141ef6158076adf3338f115f64fcf760 upstream. + +In queuecommand path, if DMA map fails, it bails out with clock held. In +this case, release the clock to keep its usage paired. + +[mkp: applied by hand] + +Link: https://lore.kernel.org/r/0101016ed3d66395-1b7e7fce-b74d-42ca-a88a-4db78b795d3b-000000@us-west-2.amazonses.com +Reviewed-by: Bean Huo +Signed-off-by: Can Guo +Signed-off-by: Martin K. Petersen +[EB: resolved cherry-pick conflict caused by newer kernels not having + the clear_bit_unlock() line] +Signed-off-by: Eric Biggers +Signed-off-by: Greg Kroah-Hartman +--- + drivers/scsi/ufs/ufshcd.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/scsi/ufs/ufshcd.c ++++ b/drivers/scsi/ufs/ufshcd.c +@@ -2505,6 +2505,7 @@ static int ufshcd_queuecommand(struct Sc + + err = ufshcd_map_sg(hba, lrbp); + if (err) { ++ ufshcd_release(hba); + lrbp->cmd = NULL; + clear_bit_unlock(tag, &hba->lrb_in_use); + goto out; diff --git a/queue-4.19/series b/queue-4.19/series index 4e0cb653f60..bc28ce8b306 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -6,6 +6,9 @@ hid-i2c-hid-add-schneider-scl142alm-to-descriptor-override.patch p54usb-add-airvast-usb-stick-device-id.patch kernel-relay.c-handle-alloc_percpu-returning-null-in-relay_open.patch mmc-fix-compilation-of-user-api.patch +scsi-ufs-release-clock-if-dma-map-fails.patch +net-dsa-mt7530-set-cpu-port-to-fallback-mode.patch +airo-fix-read-overflows-sending-packets.patch drm-i915-fix-port-checks-for-mst-support-on-gen-11.patch scsi-hisi_sas-check-sas_port-before-using-it.patch powerpc-powernv-avoid-re-registration-of-imc-debugfs.patch