From: Pankaj Bansal <pankaj.bansal(a)nxp.com>
Unlock the MB irrespective of reception method being FIFO or timestamp
based. It is optional but recommended to unlock Mailbox as soon as
possible and make it available for reception.
Reported-by: Alexander Stein <alexander.stein(a)systec-electronic.com>
Signed-off-by: Pankaj Bansal <pankaj.bansal(a)nxp.com>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
drivers/net/can/flexcan.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 8e972ef08637..0431f8d05518 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -720,9 +720,14 @@ static unsigned int flexcan_mailbox_read(struct can_rx_offload *offload,
priv->write(BIT(n - 32), ®s->iflag2);
} else {
priv->write(FLEXCAN_IFLAG_RX_FIFO_AVAILABLE, ®s->iflag1);
- priv->read(®s->timer);
}
+ /* Read the Free Running Timer. It is optional but recommended
+ * to unlock Mailbox as soon as possible and make it available
+ * for reception.
+ */
+ priv->read(®s->timer);
+
return 1;
}
--
2.19.1
From: Lukas Wunner <lukas(a)wunner.de>
If the hi3110 shares the SPI bus with another traffic-intensive device
and packets are received in high volume (by a separate machine sending
with "cangen -g 0 -i -x"), reception stops after a few minutes and the
counter in /proc/interrupts stops incrementing. Bus state is "active".
Bringing the interface down and back up reconvenes the reception. The
issue is not observed when the hi3110 is the sole device on the SPI bus.
Using a level-triggered interrupt makes the issue go away and lets the
hi3110 successfully receive 2 GByte over the course of 5 days while a
ks8851 Ethernet chip on the same SPI bus handles 6 GByte of traffic.
Unfortunately the hi3110 datasheet is mum on the trigger type. The pin
description on page 3 only specifies the polarity (active high):
http://www.holtic.com/documents/371-hi-3110_v-rev-kpdf.do
Cc: Mathias Duckeck <m.duckeck(a)kunbus.de>
Cc: Akshay Bhat <akshay.bhat(a)timesys.com>
Cc: Casey Fitzpatrick <casey.fitzpatrick(a)timesys.com>
Signed-off-by: Lukas Wunner <lukas(a)wunner.de>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
Documentation/devicetree/bindings/net/can/holt_hi311x.txt | 2 +-
drivers/net/can/spi/hi311x.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/can/holt_hi311x.txt b/Documentation/devicetree/bindings/net/can/holt_hi311x.txt
index 903a78da65be..3a9926f99937 100644
--- a/Documentation/devicetree/bindings/net/can/holt_hi311x.txt
+++ b/Documentation/devicetree/bindings/net/can/holt_hi311x.txt
@@ -17,7 +17,7 @@ Example:
reg = <1>;
clocks = <&clk32m>;
interrupt-parent = <&gpio4>;
- interrupts = <13 IRQ_TYPE_EDGE_RISING>;
+ interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
vdd-supply = <®5v0>;
xceiver-supply = <®5v0>;
};
diff --git a/drivers/net/can/spi/hi311x.c b/drivers/net/can/spi/hi311x.c
index 53e320c92a8b..ddaf46239e39 100644
--- a/drivers/net/can/spi/hi311x.c
+++ b/drivers/net/can/spi/hi311x.c
@@ -760,7 +760,7 @@ static int hi3110_open(struct net_device *net)
{
struct hi3110_priv *priv = netdev_priv(net);
struct spi_device *spi = priv->spi;
- unsigned long flags = IRQF_ONESHOT | IRQF_TRIGGER_RISING;
+ unsigned long flags = IRQF_ONESHOT | IRQF_TRIGGER_HIGH;
int ret;
ret = open_candev(net);
--
2.19.1
From: Oliver Hartkopp <socketcan(a)hartkopp.net>
When the socket is CAN FD enabled it can handle CAN FD frame
transmissions. Add an additional check in raw_sendmsg() as a CAN2.0 CAN
driver (non CAN FD) should never see a CAN FD frame. Due to the commonly
used can_dropped_invalid_skb() function the CAN 2.0 driver would drop
that CAN FD frame anyway - but with this patch the user gets a proper
-EINVAL return code.
Signed-off-by: Oliver Hartkopp <socketcan(a)hartkopp.net>
Cc: linux-stable <stable(a)vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl(a)pengutronix.de>
---
net/can/raw.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/net/can/raw.c b/net/can/raw.c
index 1051eee82581..3aab7664933f 100644
--- a/net/can/raw.c
+++ b/net/can/raw.c
@@ -745,18 +745,19 @@ static int raw_sendmsg(struct socket *sock, struct msghdr *msg, size_t size)
} else
ifindex = ro->ifindex;
- if (ro->fd_frames) {
+ dev = dev_get_by_index(sock_net(sk), ifindex);
+ if (!dev)
+ return -ENXIO;
+
+ err = -EINVAL;
+ if (ro->fd_frames && dev->mtu == CANFD_MTU) {
if (unlikely(size != CANFD_MTU && size != CAN_MTU))
- return -EINVAL;
+ goto put_dev;
} else {
if (unlikely(size != CAN_MTU))
- return -EINVAL;
+ goto put_dev;
}
- dev = dev_get_by_index(sock_net(sk), ifindex);
- if (!dev)
- return -ENXIO;
-
skb = sock_alloc_send_skb(sk, size + sizeof(struct can_skb_priv),
msg->msg_flags & MSG_DONTWAIT, &err);
if (!skb)
--
2.19.1
From: Ivan Khoronzhuk <ivan.khoronzhuk(a)linaro.org>
[ Upstream commit 9737cc99dd14b5b8b9d267618a6061feade8ea68 ]
After flushing all mcast entries from the table, the ones contained in
mc list of ndev are not restored when promisc mode is toggled off,
because they are considered as synched with ALE, thus, in order to
restore them after promisc mode - reset syncing info. This fix
touches only switch mode devices, including single port boards
like Beagle Bone.
Fixes: commit 5da1948969bc
("net: ethernet: ti: cpsw: fix lost of mcast packets while rx_mode update")
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk(a)linaro.org>
Reviewed-by: Grygorii Strashko <grygorii.strashko(a)ti.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
---
drivers/net/ethernet/ti/cpsw.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index d7cb205fe7e2..892b06852e15 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -590,6 +590,7 @@ static void cpsw_set_promiscious(struct net_device *ndev, bool enable)
/* Clear all mcast from ALE */
cpsw_ale_flush_multicast(ale, ALE_ALL_PORTS, -1);
+ __dev_mc_unsync(ndev, NULL);
/* Flood All Unicast Packets to Host port */
cpsw_ale_control_set(ale, 0, ALE_P0_UNI_FLOOD, 1);
--
2.17.1
From: Luca Coelho <luciano.coelho(a)intel.com>
We can't use SAR Geo if basic SAR is not enabled, since the SAR Geo
tables define offsets in relation to the basic SAR table in use.
To fix this, make iwl_mvm_sar_init() return one in case WRDS is not
available, so we can skip reading WGDS entirely.
Fixes: a6bff3cb19b7 ("iwlwifi: mvm: add GEO_TX_POWER_LIMIT cmd for geographic tx power table")
Cc: stable(a)vger.kernel.org # 4.12+
Signed-off-by: Luca Coelho <luciano.coelho(a)intel.com>
---
In v2:
* fix compilation when CONFIG_ACPI is not set;
drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 36 ++++++++++++++++-----
1 file changed, 28 insertions(+), 8 deletions(-)
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index 899f4a6432fb..2ba890445c35 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -928,6 +928,11 @@ static int iwl_mvm_sar_get_ewrd_table(struct iwl_mvm *mvm)
return -ENOENT;
}
+static int iwl_mvm_sar_get_wgds_table(struct iwl_mvm *mvm)
+{
+ return -ENOENT;
+}
+
static int iwl_mvm_sar_geo_init(struct iwl_mvm *mvm)
{
return 0;
@@ -954,8 +959,11 @@ static int iwl_mvm_sar_init(struct iwl_mvm *mvm)
IWL_DEBUG_RADIO(mvm,
"WRDS SAR BIOS table invalid or unavailable. (%d)\n",
ret);
- /* if not available, don't fail and don't bother with EWRD */
- return 0;
+ /*
+ * If not available, don't fail and don't bother with EWRD.
+ * Return 1 to tell that we can't use WGDS either.
+ */
+ return 1;
}
ret = iwl_mvm_sar_get_ewrd_table(mvm);
@@ -968,9 +976,13 @@ static int iwl_mvm_sar_init(struct iwl_mvm *mvm)
/* choose profile 1 (WRDS) as default for both chains */
ret = iwl_mvm_sar_select_profile(mvm, 1, 1);
- /* if we don't have profile 0 from BIOS, just skip it */
+ /*
+ * If we don't have profile 0 from BIOS, just skip it. This
+ * means that SAR Geo will not be enabled either, even if we
+ * have other valid profiles.
+ */
if (ret == -ENOENT)
- return 0;
+ return 1;
return ret;
}
@@ -1168,11 +1180,19 @@ int iwl_mvm_up(struct iwl_mvm *mvm)
iwl_mvm_unref(mvm, IWL_MVM_REF_UCODE_DOWN);
ret = iwl_mvm_sar_init(mvm);
- if (ret)
- goto error;
+ if (ret == 0) {
+ ret = iwl_mvm_sar_geo_init(mvm);
+ } else if (ret > 0 && !iwl_mvm_sar_get_wgds_table(mvm)) {
+ /*
+ * If basic SAR is not available, we check for WGDS,
+ * which should *not* be available either. If it is
+ * available, issue an error, because we can't use SAR
+ * Geo without basic SAR.
+ */
+ IWL_ERR(mvm, "BIOS contains WGDS but no WRDS\n");
+ }
- ret = iwl_mvm_sar_geo_init(mvm);
- if (ret)
+ if (ret < 0)
goto error;
iwl_mvm_leds_sync(mvm);
--
2.19.1
Hi,friend,
This is Daniel Murray and i am from Sinara Group Co.Ltd Group Co.,LTD in Russia.
We are glad to know about your company from the web and we are interested in your products.
Could you kindly send us your Latest catalog and price list for our trial order.
Best Regards,
Daniel Murray
Purchasing Manager
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi Greg,
Pleae pull commits for Linux 3.18 .
I've sent a review request for all commits over a week ago and all
comments were addressed.
Thanks,
Sasha
=====
The following changes since commit 78e0897dd8b321ba1b4a2137778ab7ae7d400af5:
Linux 3.18.125 (2018-11-10 07:39:23 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git tags/for-greg-3.18-11112018
for you to fetch changes up to 57bcd87edfdbe4a97886de04a2999e1d859bad38:
9p: clear dangling pointers in p9stat_free (2018-11-11 22:10:43 -0500)
- ----------------------------------------------------------------
for-greg-3.18-11112018
- ----------------------------------------------------------------
Daniel Axtens (1):
powerpc/nohash: fix undefined behaviour when testing page size support
Dengcheng Zhu (1):
MIPS: kexec: Mark CPU offline before disabling local IRQ
Dominique Martinet (1):
9p: clear dangling pointers in p9stat_free
Eugen Hristev (2):
iio: adc: at91: fix wrong channel number in triggered buffer mode
iio: adc: at91: fix acking DRDY irq on simple conversions
Joel Stanley (1):
powerpc/boot: Ensure _zimage_start is a weak symbol
Marco Felsch (1):
media: tvp5150: fix width alignment during set_selection()
Miles Chen (1):
tty: check name length in tty_find_polling_driver()
Nicholas Mc Guire (1):
media: pci: cx23885: handle adding to list failure
Tomi Valkeinen (1):
drm/omap: fix memory barrier bug in DMM driver
arch/mips/kernel/crash.c | 3 +++
arch/mips/kernel/machine_kexec.c | 3 +++
arch/powerpc/boot/crt0.S | 4 +++-
arch/powerpc/mm/tlb_nohash.c | 3 +++
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 11 +++++++++++
drivers/iio/adc/at91_adc.c | 6 +++++-
drivers/media/i2c/tvp5150.c | 14 +++++++++-----
drivers/media/pci/cx23885/altera-ci.c | 10 ++++++++++
drivers/tty/tty_io.c | 2 +-
net/9p/protocol.c | 5 +++++
10 files changed, 53 insertions(+), 8 deletions(-)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAlvo8wEACgkQ3qZv95d3
LNyP8Q/+P6o7+KsH8MGtmTKnIMB1u8ncpMWp5aVrTNMr/QjdBxeHyiDR+4JY6+ML
wwA1wpwJ6IyYDqfyF5M2lQRhJjdJR4NRqc5aKncV36lyFrr3YxWw9ClaZHNCOp57
M1CUpKM/9eahnjqVxntK6AZWZcq3kKirwWGuayLiKLkB8xnYZQKi/COarOwSRb0z
lac1NM2DYqRgpOh3l1Qtk9f98JK/SnMc1Y44rrLmz3x1Mlb8d8tt4wKT/Xru7KjS
XRp4Q59Iu1ORhaujfpXzDGiF5ik2CLQ8eWdYMBv4Y6+cAaQIW3mBCuyEMIR7Sbfr
K09eo+Ey0RUPl/Er/0upzjukFyrBEWZXtmHNGLmS9Jv841Ye8SAORdDofTGow3ac
WD7skECtMypnpbDZdCPXtudhRdDCyQHB6QzVdV+2tCknnmgdwLjvLgwOoSfknbHT
9BvIn5Plv3+ObxonOCwrn1h83RjlJxmDFYhLampdbUxRleRMsw4Z6/gLRXBvISUR
drYfHzrkGAZyIruNIgQ+o+7Lr7oWIdlVXV26tbWIJzM8kFV7TAOzyL8/mf68wWCi
No7VVTWVKNg0svhoBEONraMER2k6iQQdXSlVbdRi0rEauLLkCj8G3nr2G26NkXte
59X4Hq33BRGIq4V46EK2ILyocpZj7pirZzsSoMNoVr7/itVp9sA=
=cFHf
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Hi Greg,
Pleae pull commits for Linux 4.4 .
I've sent a review request for all commits over a week ago and all
comments were addressed.
Thanks,
Sasha
=====
The following changes since commit 7a4269707deb6ab22d488eb1a9eedae3ef88abc5:
Linux 4.4.163 (2018-11-10 07:41:44 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git tags/for-greg-4.4-11112018
for you to fetch changes up to 49734ae5c92cbb323a2853f3a237b3553df89545:
9p: clear dangling pointers in p9stat_free (2018-11-11 22:10:33 -0500)
- ----------------------------------------------------------------
for-greg-4.4-11112018
- ----------------------------------------------------------------
Daniel Axtens (1):
powerpc/nohash: fix undefined behaviour when testing page size support
Dengcheng Zhu (1):
MIPS: kexec: Mark CPU offline before disabling local IRQ
Dominique Martinet (2):
9p locks: fix glock.client_id leak in do_lock
9p: clear dangling pointers in p9stat_free
Eugen Hristev (2):
iio: adc: at91: fix wrong channel number in triggered buffer mode
iio: adc: at91: fix acking DRDY irq on simple conversions
Joel Stanley (1):
powerpc/boot: Ensure _zimage_start is a weak symbol
Marco Felsch (1):
media: tvp5150: fix width alignment during set_selection()
Miles Chen (1):
tty: check name length in tty_find_polling_driver()
Nicholas Mc Guire (1):
media: pci: cx23885: handle adding to list failure
Phil Elwell (1):
sc16is7xx: Fix for multi-channel stall
Tomi Valkeinen (1):
drm/omap: fix memory barrier bug in DMM driver
arch/mips/kernel/crash.c | 3 +++
arch/mips/kernel/machine_kexec.c | 3 +++
arch/powerpc/boot/crt0.S | 4 +++-
arch/powerpc/mm/tlb_nohash.c | 3 +++
drivers/gpu/drm/omapdrm/omap_dmm_tiler.c | 11 +++++++++++
drivers/iio/adc/at91_adc.c | 6 +++++-
drivers/media/i2c/tvp5150.c | 14 +++++++++-----
drivers/media/pci/cx23885/altera-ci.c | 10 ++++++++++
drivers/tty/serial/sc16is7xx.c | 19 +++++++++++++------
drivers/tty/tty_io.c | 2 +-
fs/9p/vfs_file.c | 16 ++++++++++++++--
net/9p/protocol.c | 5 +++++
12 files changed, 80 insertions(+), 16 deletions(-)
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE4n5dijQDou9mhzu83qZv95d3LNwFAlvo8vsACgkQ3qZv95d3
LNxZyBAAm992Lj4rA5T7H6GBeGb7epyf0DJKkyuYVYnuL2YgEPWtiEqdz4ND1POR
CLlBZQwBRSBX6SATdPWesKtPcp9ij+Uur52iLU9RnouUEG3p+RKHrg8fo5vGQrgF
WOoBBtoEFob7NIfd6C02VvIxjjix/dLri+QKTFVNqar8OurYWmNi51xfcT0TiyNy
m0AbtZrWhiouWJDz4940JNhJS9MRFMyRoBXLgtdCJYJnbKqEFKrhs6NpK3WjLUQc
3o9FiJeY39i1psFPhQQJecpwo4ZN3hP8aPwbsOed7NoHRME6A7unJfiItc6/8kO6
pjDIJvXoL21TiI0mc+jrCBN4PGAOGaifYpYFQIe2goxGpoiV3aPZqnYxiM8jyR+q
gqOjvA7+fCTTo4D05iD5Zk2lOSe5RGc3gGQDjU62fby/bS1ZHBvG6lptE8uihnwA
kPsPlRvin73LAOF3khXn2tl/QiE3fCKfLW3K0a/ytBHKoyDf0jfsEB/81GOqIBZ4
57Wk5gvCr6jof27CAeFZJiKDihlvaO/7FcudC12ThtLogFkHwvQyvhFhKMrWzi5o
j7GIXyo6eiaQSbc1+ihuF5dmhhhxUchaRt0PJv4Qs8Ddg5A1gtvRxtdAOoTn2dur
eYGtsM4xNwMomjSjlwvifKHJnVuRjFqYtWSQJSKaR7RL5cRq0r8=
=OMpd
-----END PGP SIGNATURE-----