* [PATCH AUTOSEL 5.10 02/14] drm/msm/rd: Fix FIFO-full deadlock
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 03/14] hwmon: (pmbus) Use dev_err_probe() to filter -EPROBE_DEFER error messages Sasha Levin
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Rob Clark, Sasha Levin, robdclark, quic_abhinavk,
dmitry.baryshkov, airlied, daniel, linux-arm-msm, dri-devel,
freedreno
From: Rob Clark <robdclark@chromium.org>
[ Upstream commit 174974d8463b77c2b4065e98513adb204e64de7d ]
If the previous thing cat'ing $debugfs/rd left the FIFO full, then
subsequent open could deadlock in rd_write() (because open is blocked,
not giving a chance for read() to consume any data in the FIFO). Also
it is generally a good idea to clear out old data from the FIFO.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/496706/
Link: https://lore.kernel.org/r/20220807160901.2353471-2-robdclark@gmail.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/msm/msm_rd.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/gpu/drm/msm/msm_rd.c b/drivers/gpu/drm/msm/msm_rd.c
index fea30e7aa9e83..084b6ae2a4761 100644
--- a/drivers/gpu/drm/msm/msm_rd.c
+++ b/drivers/gpu/drm/msm/msm_rd.c
@@ -191,6 +191,9 @@ static int rd_open(struct inode *inode, struct file *file)
file->private_data = rd;
rd->open = true;
+ /* Reset fifo to clear any previously unread data: */
+ rd->fifo.head = rd->fifo.tail = 0;
+
/* the parsing tools need to know gpu-id to know which
* register database to load.
*/
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 03/14] hwmon: (pmbus) Use dev_err_probe() to filter -EPROBE_DEFER error messages
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 02/14] drm/msm/rd: Fix FIFO-full deadlock Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 04/14] HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo Sasha Levin
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Christophe JAILLET, Guenter Roeck, Sasha Levin, jdelvare,
linux-hwmon
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
[ Upstream commit 09e52d17b72d3a4bf6951a90ccd8c97fae04e5cf ]
devm_regulator_register() can return -EPROBE_DEFER, so better use
dev_err_probe() instead of dev_err(), it is less verbose in such a case.
It is also more informative, which can't hurt.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/3adf1cea6e32e54c0f71f4604b4e98d992beaa71.1660741419.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/hwmon/pmbus/pmbus_core.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
index 117e3ce9c76ad..6d8ace96b0a73 100644
--- a/drivers/hwmon/pmbus/pmbus_core.c
+++ b/drivers/hwmon/pmbus/pmbus_core.c
@@ -2322,11 +2322,10 @@ static int pmbus_regulator_register(struct pmbus_data *data)
rdev = devm_regulator_register(dev, &info->reg_desc[i],
&config);
- if (IS_ERR(rdev)) {
- dev_err(dev, "Failed to register %s regulator\n",
- info->reg_desc[i].name);
- return PTR_ERR(rdev);
- }
+ if (IS_ERR(rdev))
+ return dev_err_probe(dev, PTR_ERR(rdev),
+ "Failed to register %s regulator\n",
+ info->reg_desc[i].name);
}
return 0;
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 04/14] HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 02/14] drm/msm/rd: Fix FIFO-full deadlock Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 03/14] hwmon: (pmbus) Use dev_err_probe() to filter -EPROBE_DEFER error messages Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 05/14] hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message Sasha Levin
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Jason Wang, Jiri Kosina, Sasha Levin, srinivas.pandruvada, jikos,
benjamin.tissoires, linux-input
From: Jason Wang <wangborong@cdjrlc.com>
[ Upstream commit 94553f8a218540d676efbf3f7827ed493d1057cf ]
The double `like' is duplicated in the comment, remove one.
Signed-off-by: Jason Wang <wangborong@cdjrlc.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/hid/intel-ish-hid/ishtp-hid.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/hid/intel-ish-hid/ishtp-hid.h b/drivers/hid/intel-ish-hid/ishtp-hid.h
index 5ffd0da3cf1fa..65af0ebef79f6 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid.h
+++ b/drivers/hid/intel-ish-hid/ishtp-hid.h
@@ -110,7 +110,7 @@ struct report_list {
* @multi_packet_cnt: Count of fragmented packet count
*
* This structure is used to store completion flags and per client data like
- * like report description, number of HID devices etc.
+ * report description, number of HID devices etc.
*/
struct ishtp_cl_data {
/* completion flags */
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 05/14] hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (2 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 04/14] HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 06/14] tg3: Disable tg3 device on system reboot to avoid triggering AER Sasha Levin
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Even Xu, Srinivas Pandruvada, Jiri Kosina, Sasha Levin,
srinivas.pandruvada, jikos, benjamin.tissoires, linux-input
From: Even Xu <even.xu@intel.com>
[ Upstream commit e1fa076706209cc447d7a2abd0843a18277e5ef7 ]
There is a timing issue captured during ishtp client sending stress tests.
It was observed during stress tests that ISH firmware is getting out of
ordered messages. This is a rare scenario as the current set of ISH client
drivers don't send much data to firmware. But this may not be the case
going forward.
When message size is bigger than IPC MTU, ishtp splits the message into
fragments and uses serialized async method to send message fragments.
The call stack:
ishtp_cl_send_msg_ipc->ipc_tx_callback(first fregment)->
ishtp_send_msg(with callback)->write_ipc_to_queue->
write_ipc_from_queue->callback->ipc_tx_callback(next fregment)......
When an ipc write complete interrupt is received, driver also calls
write_ipc_from_queue->ipc_tx_callback in ISR to start sending of next fragment.
Through ipc_tx_callback uses spin_lock to protect message splitting, as the
serialized sending method will call back to ipc_tx_callback again, so it doesn't
put sending under spin_lock, it causes driver cannot guarantee all fragments
be sent in order.
Considering this scenario:
ipc_tx_callback just finished a fragment splitting, and not call ishtp_send_msg
yet, there is a write complete interrupt happens, then ISR->write_ipc_from_queue
->ipc_tx_callback->ishtp_send_msg->write_ipc_to_queue......
Because ISR has higher exec priority than normal thread, this causes the new
fragment be sent out before previous fragment. This disordered message causes
invalid message to firmware.
The solution is, to send fragments synchronously:
Use ishtp_write_message writing fragments into tx queue directly one by one,
instead of ishtp_send_msg only writing one fragment with completion callback.
As no completion callback be used, so change ipc_tx_callback to ipc_tx_send.
Signed-off-by: Even Xu <even.xu@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/hid/intel-ish-hid/ishtp/client.c | 68 ++++++++++++++----------
1 file changed, 39 insertions(+), 29 deletions(-)
diff --git a/drivers/hid/intel-ish-hid/ishtp/client.c b/drivers/hid/intel-ish-hid/ishtp/client.c
index 1cc157126fce7..c0d69303e3b09 100644
--- a/drivers/hid/intel-ish-hid/ishtp/client.c
+++ b/drivers/hid/intel-ish-hid/ishtp/client.c
@@ -626,13 +626,14 @@ static void ishtp_cl_read_complete(struct ishtp_cl_rb *rb)
}
/**
- * ipc_tx_callback() - IPC tx callback function
+ * ipc_tx_send() - IPC tx send function
* @prm: Pointer to client device instance
*
- * Send message over IPC either first time or on callback on previous message
- * completion
+ * Send message over IPC. Message will be split into fragments
+ * if message size is bigger than IPC FIFO size, and all
+ * fragments will be sent one by one.
*/
-static void ipc_tx_callback(void *prm)
+static void ipc_tx_send(void *prm)
{
struct ishtp_cl *cl = prm;
struct ishtp_cl_tx_ring *cl_msg;
@@ -677,32 +678,41 @@ static void ipc_tx_callback(void *prm)
list);
rem = cl_msg->send_buf.size - cl->tx_offs;
- ishtp_hdr.host_addr = cl->host_client_id;
- ishtp_hdr.fw_addr = cl->fw_client_id;
- ishtp_hdr.reserved = 0;
- pmsg = cl_msg->send_buf.data + cl->tx_offs;
+ while (rem > 0) {
+ ishtp_hdr.host_addr = cl->host_client_id;
+ ishtp_hdr.fw_addr = cl->fw_client_id;
+ ishtp_hdr.reserved = 0;
+ pmsg = cl_msg->send_buf.data + cl->tx_offs;
+
+ if (rem <= dev->mtu) {
+ /* Last fragment or only one packet */
+ ishtp_hdr.length = rem;
+ ishtp_hdr.msg_complete = 1;
+ /* Submit to IPC queue with no callback */
+ ishtp_write_message(dev, &ishtp_hdr, pmsg);
+ cl->tx_offs = 0;
+ cl->sending = 0;
- if (rem <= dev->mtu) {
- ishtp_hdr.length = rem;
- ishtp_hdr.msg_complete = 1;
- cl->sending = 0;
- list_del_init(&cl_msg->list); /* Must be before write */
- spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
- /* Submit to IPC queue with no callback */
- ishtp_write_message(dev, &ishtp_hdr, pmsg);
- spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags);
- list_add_tail(&cl_msg->list, &cl->tx_free_list.list);
- ++cl->tx_ring_free_size;
- spin_unlock_irqrestore(&cl->tx_free_list_spinlock,
- tx_free_flags);
- } else {
- /* Send IPC fragment */
- spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
- cl->tx_offs += dev->mtu;
- ishtp_hdr.length = dev->mtu;
- ishtp_hdr.msg_complete = 0;
- ishtp_send_msg(dev, &ishtp_hdr, pmsg, ipc_tx_callback, cl);
+ break;
+ } else {
+ /* Send ipc fragment */
+ ishtp_hdr.length = dev->mtu;
+ ishtp_hdr.msg_complete = 0;
+ /* All fregments submitted to IPC queue with no callback */
+ ishtp_write_message(dev, &ishtp_hdr, pmsg);
+ cl->tx_offs += dev->mtu;
+ rem = cl_msg->send_buf.size - cl->tx_offs;
+ }
}
+
+ list_del_init(&cl_msg->list);
+ spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags);
+
+ spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags);
+ list_add_tail(&cl_msg->list, &cl->tx_free_list.list);
+ ++cl->tx_ring_free_size;
+ spin_unlock_irqrestore(&cl->tx_free_list_spinlock,
+ tx_free_flags);
}
/**
@@ -720,7 +730,7 @@ static void ishtp_cl_send_msg_ipc(struct ishtp_device *dev,
return;
cl->tx_offs = 0;
- ipc_tx_callback(cl);
+ ipc_tx_send(cl);
++cl->send_msg_cnt_ipc;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 06/14] tg3: Disable tg3 device on system reboot to avoid triggering AER
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (3 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 05/14] hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 07/14] gpio: mockup: remove gpio debugfs when remove device Sasha Levin
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Kai-Heng Feng, Josef Bacik, Michael Chan, Jakub Kicinski,
Sasha Levin, siva.kallam, prashant, mchan, davem, edumazet,
pabeni, netdev
From: Kai-Heng Feng <kai.heng.feng@canonical.com>
[ Upstream commit 2ca1c94ce0b65a2ce7512b718f3d8a0fe6224bca ]
Commit d60cd06331a3 ("PM: ACPI: reboot: Use S5 for reboot") caused a
reboot hang on one Dell servers so the commit was reverted.
Someone managed to collect the AER log and it's caused by MSI:
[ 148.762067] ACPI: Preparing to enter system sleep state S5
[ 148.794638] {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 5
[ 148.803731] {1}[Hardware Error]: event severity: recoverable
[ 148.810191] {1}[Hardware Error]: Error 0, type: fatal
[ 148.816088] {1}[Hardware Error]: section_type: PCIe error
[ 148.822391] {1}[Hardware Error]: port_type: 0, PCIe end point
[ 148.829026] {1}[Hardware Error]: version: 3.0
[ 148.834266] {1}[Hardware Error]: command: 0x0006, status: 0x0010
[ 148.841140] {1}[Hardware Error]: device_id: 0000:04:00.0
[ 148.847309] {1}[Hardware Error]: slot: 0
[ 148.852077] {1}[Hardware Error]: secondary_bus: 0x00
[ 148.857876] {1}[Hardware Error]: vendor_id: 0x14e4, device_id: 0x165f
[ 148.865145] {1}[Hardware Error]: class_code: 020000
[ 148.870845] {1}[Hardware Error]: aer_uncor_status: 0x00100000, aer_uncor_mask: 0x00010000
[ 148.879842] {1}[Hardware Error]: aer_uncor_severity: 0x000ef030
[ 148.886575] {1}[Hardware Error]: TLP Header: 40000001 0000030f 90028090 00000000
[ 148.894823] tg3 0000:04:00.0: AER: aer_status: 0x00100000, aer_mask: 0x00010000
[ 148.902795] tg3 0000:04:00.0: AER: [20] UnsupReq (First)
[ 148.910234] tg3 0000:04:00.0: AER: aer_layer=Transaction Layer, aer_agent=Requester ID
[ 148.918806] tg3 0000:04:00.0: AER: aer_uncor_severity: 0x000ef030
[ 148.925558] tg3 0000:04:00.0: AER: TLP Header: 40000001 0000030f 90028090 00000000
The MSI is probably raised by incoming packets, so power down the device
and disable bus mastering to stop the traffic, as user confirmed this
approach works.
In addition to that, be extra safe and cancel reset task if it's running.
Cc: Josef Bacik <josef@toxicpanda.com>
Link: https://lore.kernel.org/all/b8db79e6857c41dab4ef08bdf826ea7c47e3bafc.1615947283.git.josef@toxicpanda.com/
BugLink: https://bugs.launchpad.net/bugs/1917471
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Link: https://lore.kernel.org/r/20220826002530.1153296-1-kai.heng.feng@canonical.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/broadcom/tg3.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 5143cdd0eecad..be96116dc2ccb 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -18146,16 +18146,20 @@ static void tg3_shutdown(struct pci_dev *pdev)
struct net_device *dev = pci_get_drvdata(pdev);
struct tg3 *tp = netdev_priv(dev);
+ tg3_reset_task_cancel(tp);
+
rtnl_lock();
+
netif_device_detach(dev);
if (netif_running(dev))
dev_close(dev);
- if (system_state == SYSTEM_POWER_OFF)
- tg3_power_down(tp);
+ tg3_power_down(tp);
rtnl_unlock();
+
+ pci_disable_device(pdev);
}
/**
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 07/14] gpio: mockup: remove gpio debugfs when remove device
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (4 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 06/14] tg3: Disable tg3 device on system reboot to avoid triggering AER Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 08/14] ieee802154: cc2520: add rc code in cc2520_tx() Sasha Levin
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Wei Yongjun, Bartosz Golaszewski, Sasha Levin, bamv2005,
linus.walleij, linux-gpio
From: Wei Yongjun <weiyongjun1@huawei.com>
[ Upstream commit 303e6da99429510b1e4edf833afe90ac8542e747 ]
GPIO mockup debugfs is created in gpio_mockup_probe() but
forgot to remove when remove device. This patch add a devm
managed callback for removing them.
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpio/gpio-mockup.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
index 67ed4f238d437..780cba4e30d0e 100644
--- a/drivers/gpio/gpio-mockup.c
+++ b/drivers/gpio/gpio-mockup.c
@@ -375,6 +375,13 @@ static void gpio_mockup_debugfs_setup(struct device *dev,
}
}
+static void gpio_mockup_debugfs_cleanup(void *data)
+{
+ struct gpio_mockup_chip *chip = data;
+
+ debugfs_remove_recursive(chip->dbg_dir);
+}
+
static void gpio_mockup_dispose_mappings(void *data)
{
struct gpio_mockup_chip *chip = data;
@@ -457,7 +464,7 @@ static int gpio_mockup_probe(struct platform_device *pdev)
gpio_mockup_debugfs_setup(dev, chip);
- return 0;
+ return devm_add_action_or_reset(dev, gpio_mockup_debugfs_cleanup, chip);
}
static struct platform_driver gpio_mockup_driver = {
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 08/14] ieee802154: cc2520: add rc code in cc2520_tx()
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (5 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 07/14] gpio: mockup: remove gpio debugfs when remove device Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 09/14] Input: iforce - add support for Boeder Force Feedback Wheel Sasha Levin
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Li Qiong, Stefan Schmidt, Sasha Levin, varkabhadram, alex.aring,
davem, edumazet, kuba, pabeni, linux-wpan, netdev
From: Li Qiong <liqiong@nfschina.com>
[ Upstream commit ffd7bdddaab193c38416fd5dd416d065517d266e ]
The rc code is 0 at the error path "status & CC2520_STATUS_TX_UNDERFLOW".
Assign rc code with '-EINVAL' at this error path to fix it.
Signed-off-by: Li Qiong <liqiong@nfschina.com>
Link: https://lore.kernel.org/r/20220829071259.18330-1-liqiong@nfschina.com
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ieee802154/cc2520.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
index 89c046b204e0c..4517517215f2b 100644
--- a/drivers/net/ieee802154/cc2520.c
+++ b/drivers/net/ieee802154/cc2520.c
@@ -504,6 +504,7 @@ cc2520_tx(struct ieee802154_hw *hw, struct sk_buff *skb)
goto err_tx;
if (status & CC2520_STATUS_TX_UNDERFLOW) {
+ rc = -EINVAL;
dev_err(&priv->spi->dev, "cc2520 tx underflow exception\n");
goto err_tx;
}
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 09/14] Input: iforce - add support for Boeder Force Feedback Wheel
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (6 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 08/14] ieee802154: cc2520: add rc code in cc2520_tx() Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 10/14] nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change() Sasha Levin
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Greg Tulli, Dmitry Torokhov, Sasha Levin, corbet, linux-input,
linux-doc
From: Greg Tulli <greg.iforce@gmail.com>
[ Upstream commit 9c9c71168f7979f3798b61c65b4530fbfbcf19d1 ]
Add a new iforce_device entry to support the Boeder Force Feedback Wheel
device.
Signed-off-by: Greg Tulli <greg.iforce@gmail.com>
Link: https://lore.kernel.org/r/3256420-c8ac-31b-8499-3c488a9880fd@gmail.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
Documentation/input/joydev/joystick.rst | 1 +
drivers/input/joystick/iforce/iforce-main.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/Documentation/input/joydev/joystick.rst b/Documentation/input/joydev/joystick.rst
index 9746fd76cc581..f38c330c028e5 100644
--- a/Documentation/input/joydev/joystick.rst
+++ b/Documentation/input/joydev/joystick.rst
@@ -517,6 +517,7 @@ All I-Force devices are supported by the iforce module. This includes:
* AVB Mag Turbo Force
* AVB Top Shot Pegasus
* AVB Top Shot Force Feedback Racing Wheel
+* Boeder Force Feedback Wheel
* Logitech WingMan Force
* Logitech WingMan Force Wheel
* Guillemot Race Leader Force Feedback
diff --git a/drivers/input/joystick/iforce/iforce-main.c b/drivers/input/joystick/iforce/iforce-main.c
index b2a68bc9f0b4d..b86de1312512b 100644
--- a/drivers/input/joystick/iforce/iforce-main.c
+++ b/drivers/input/joystick/iforce/iforce-main.c
@@ -50,6 +50,7 @@ static struct iforce_device iforce_device[] = {
{ 0x046d, 0xc291, "Logitech WingMan Formula Force", btn_wheel, abs_wheel, ff_iforce },
{ 0x05ef, 0x020a, "AVB Top Shot Pegasus", btn_joystick_avb, abs_avb_pegasus, ff_iforce },
{ 0x05ef, 0x8884, "AVB Mag Turbo Force", btn_wheel, abs_wheel, ff_iforce },
+ { 0x05ef, 0x8886, "Boeder Force Feedback Wheel", btn_wheel, abs_wheel, ff_iforce },
{ 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //?
{ 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //?
{ 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce },
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 10/14] nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change()
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (7 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 09/14] Input: iforce - add support for Boeder Force Feedback Wheel Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 11/14] drm/amd/amdgpu: skip ucode loading if ucode_size == 0 Sasha Levin
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Maurizio Lombardi, Sagi Grimberg, Chaitanya Kulkarni,
Christoph Hellwig, Sasha Levin, linux-nvme
From: Maurizio Lombardi <mlombard@redhat.com>
[ Upstream commit 478814a5584197fa1fb18377653626e3416e7cd6 ]
TCP_FIN_WAIT2 and TCP_LAST_ACK were not handled, the connection is closing
so we can ignore them and avoid printing the "unhandled state"
warning message.
[ 1298.852386] nvmet_tcp: queue 2 unhandled state 5
[ 1298.879112] nvmet_tcp: queue 7 unhandled state 5
[ 1298.884253] nvmet_tcp: queue 8 unhandled state 5
[ 1298.889475] nvmet_tcp: queue 9 unhandled state 5
v2: Do not call nvmet_tcp_schedule_release_queue(), just ignore
the fin_wait2 and last_ack states.
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/nvme/target/tcp.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
index d030d5e69dc50..e3e35b9bd6846 100644
--- a/drivers/nvme/target/tcp.c
+++ b/drivers/nvme/target/tcp.c
@@ -1471,6 +1471,9 @@ static void nvmet_tcp_state_change(struct sock *sk)
goto done;
switch (sk->sk_state) {
+ case TCP_FIN_WAIT2:
+ case TCP_LAST_ACK:
+ break;
case TCP_FIN_WAIT1:
case TCP_CLOSE_WAIT:
case TCP_CLOSE:
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 11/14] drm/amd/amdgpu: skip ucode loading if ucode_size == 0
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (8 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 10/14] nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change() Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 12/14] perf/arm_pmu_platform: fix tests for platform_get_irq() failure Sasha Levin
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Chengming Gui, Hawking Zhang, Alex Deucher, Sasha Levin,
christian.koenig, Xinhui.Pan, airlied, daniel, Likun.Gao,
john.clements, candice.li, guchun.chen, tao.zhou1, Bokun.Zhang,
amd-gfx, dri-devel
From: Chengming Gui <Jack.Gui@amd.com>
[ Upstream commit 39c84b8e929dbd4f63be7e04bf1a2bcd92b44177 ]
Restrict the ucode loading check to avoid frontdoor loading error.
Signed-off-by: Chengming Gui <Jack.Gui@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 2f47f81a74a57..f3a806df7648d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -1921,7 +1921,7 @@ static int psp_load_smu_fw(struct psp_context *psp)
static bool fw_load_skip_check(struct psp_context *psp,
struct amdgpu_firmware_info *ucode)
{
- if (!ucode->fw)
+ if (!ucode->fw || !ucode->ucode_size)
return true;
if (ucode->ucode_id == AMDGPU_UCODE_ID_SMC &&
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 12/14] perf/arm_pmu_platform: fix tests for platform_get_irq() failure
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (9 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 11/14] drm/amd/amdgpu: skip ucode loading if ucode_size == 0 Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 13/14] platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 14/14] usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS Sasha Levin
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Yu Zhe, Will Deacon, Sasha Levin, mark.rutland, linux-arm-kernel
From: Yu Zhe <yuzhe@nfschina.com>
[ Upstream commit 6bb0d64c100091e131cd16710b62fda3319cd0af ]
The platform_get_irq() returns negative error codes. It can't actually
return zero.
Signed-off-by: Yu Zhe <yuzhe@nfschina.com>
Link: https://lore.kernel.org/r/20220825011844.8536-1-yuzhe@nfschina.com
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/perf/arm_pmu_platform.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/perf/arm_pmu_platform.c b/drivers/perf/arm_pmu_platform.c
index ef9676418c9f4..2e1f3680d8466 100644
--- a/drivers/perf/arm_pmu_platform.c
+++ b/drivers/perf/arm_pmu_platform.c
@@ -117,7 +117,7 @@ static int pmu_parse_irqs(struct arm_pmu *pmu)
if (num_irqs == 1) {
int irq = platform_get_irq(pdev, 0);
- if (irq && irq_is_percpu_devid(irq))
+ if ((irq > 0) && irq_is_percpu_devid(irq))
return pmu_parse_percpu_irq(pmu, irq);
}
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 13/14] platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (10 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 12/14] perf/arm_pmu_platform: fix tests for platform_get_irq() failure Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 14/14] usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS Sasha Levin
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Hans de Goede, Sasha Levin, jlee, markgross, platform-driver-x86
From: Hans de Goede <hdegoede@redhat.com>
[ Upstream commit c3b82d26bc85f5fc2fef5ec8cce17c89633a55a8 ]
2 keymap fixes for the Acer Aspire One AOD270 and the same hardware
rebranded as Packard Bell Dot SC:
1. The F2 key is marked with a big '?' symbol on the Packard Bell Dot SC,
this sends WMID_HOTKEY_EVENTs with a scancode of 0x27 add a mapping
for this.
2. Scancode 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate
input event with the "Video Bus" input device events. But on these devices
the "Video Bus" does not send events for this key. Map 0x61 to KEY_UNKNOWN
instead of using KE_IGNORE so that udev/hwdb can override it on these devs.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20220829163544.5288-1-hdegoede@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/platform/x86/acer-wmi.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
index 80983f9dfcd55..8e696262215fc 100644
--- a/drivers/platform/x86/acer-wmi.c
+++ b/drivers/platform/x86/acer-wmi.c
@@ -93,6 +93,7 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
{KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */
{KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */
{KE_KEY, 0x24, {KEY_PROG4} }, /* Social networking_Key */
+ {KE_KEY, 0x27, {KEY_HELP} },
{KE_KEY, 0x29, {KEY_PROG3} }, /* P_Key for TM8372 */
{KE_IGNORE, 0x41, {KEY_MUTE} },
{KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} },
@@ -106,7 +107,13 @@ static const struct key_entry acer_wmi_keymap[] __initconst = {
{KE_IGNORE, 0x48, {KEY_VOLUMEUP} },
{KE_IGNORE, 0x49, {KEY_VOLUMEDOWN} },
{KE_IGNORE, 0x4a, {KEY_VOLUMEDOWN} },
- {KE_IGNORE, 0x61, {KEY_SWITCHVIDEOMODE} },
+ /*
+ * 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate input event
+ * with the "Video Bus" input device events. But sometimes it is not
+ * a dup. Map it to KEY_UNKNOWN instead of using KE_IGNORE so that
+ * udev/hwdb can override it on systems where it is not a dup.
+ */
+ {KE_KEY, 0x61, {KEY_UNKNOWN} },
{KE_IGNORE, 0x62, {KEY_BRIGHTNESSUP} },
{KE_IGNORE, 0x63, {KEY_BRIGHTNESSDOWN} },
{KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} }, /* Display Switch */
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH AUTOSEL 5.10 14/14] usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS
2022-09-10 21:18 [PATCH AUTOSEL 5.10 01/14] Input: goodix - add support for GT1158 Sasha Levin
` (11 preceding siblings ...)
2022-09-10 21:18 ` [PATCH AUTOSEL 5.10 13/14] platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes Sasha Levin
@ 2022-09-10 21:18 ` Sasha Levin
12 siblings, 0 replies; 14+ messages in thread
From: Sasha Levin @ 2022-09-10 21:18 UTC (permalink / raw)
To: linux-kernel, stable
Cc: Hu Xiaoying, Matthias Kaehlcke, Alan Stern, Greg Kroah-Hartman,
Sasha Levin, linux-usb, usb-storage
From: Hu Xiaoying <huxiaoying@kylinos.cn>
[ Upstream commit c61feaee68b9735be06f162bc046c7f1959efb0c ]
USB external storage device(0x0b05:1932), use gnome-disk-utility tools
to test usb write < 30MB/s.
if does not to load module of uas for this device, can increase the
write speed from 20MB/s to >40MB/s.
Suggested-by: Matthias Kaehlcke <mka@chromium.org>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Hu Xiaoying <huxiaoying@kylinos.cn>
Link: https://lore.kernel.org/r/20220901045737.3438046-1-huxiaoying@kylinos.cn
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/usb/storage/unusual_uas.h | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
index 4051c8cd0cd8a..23ab3b048d9be 100644
--- a/drivers/usb/storage/unusual_uas.h
+++ b/drivers/usb/storage/unusual_uas.h
@@ -62,6 +62,13 @@ UNUSUAL_DEV(0x0984, 0x0301, 0x0128, 0x0128,
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_IGNORE_UAS),
+/* Reported-by: Tom Hu <huxiaoying@kylinos.cn> */
+UNUSUAL_DEV(0x0b05, 0x1932, 0x0000, 0x9999,
+ "ASUS",
+ "External HDD",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_IGNORE_UAS),
+
/* Reported-by: David Webb <djw@noc.ac.uk> */
UNUSUAL_DEV(0x0bc2, 0x331a, 0x0000, 0x9999,
"Seagate",
--
2.35.1
^ permalink raw reply related [flat|nested] 14+ messages in thread