From: Sasha Levin Date: Sat, 21 Sep 2019 19:23:45 +0000 (-0400) Subject: fixes for 4.19 X-Git-Tag: v5.3.2~65 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e4928844a14e1fecc7cf82f9f12f0a5c6e8c88be;p=thirdparty%2Fkernel%2Fstable-queue.git fixes for 4.19 Signed-off-by: Sasha Levin --- diff --git a/queue-4.19/net-ibmvnic-free-reset-work-of-removed-device-from-q.patch b/queue-4.19/net-ibmvnic-free-reset-work-of-removed-device-from-q.patch new file mode 100644 index 00000000000..294d3e2f19c --- /dev/null +++ b/queue-4.19/net-ibmvnic-free-reset-work-of-removed-device-from-q.patch @@ -0,0 +1,54 @@ +From b10d94f23fc52771d8f2ae3cdb5c0c4e548bf605 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 5 Sep 2019 17:30:01 -0400 +Subject: net/ibmvnic: free reset work of removed device from queue +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Juliet Kim + +[ Upstream commit 1c2977c094998de032fee6e898c88b4a05483d08 ] + +Commit 36f1031c51a2 ("ibmvnic: Do not process reset during or after + device removal") made the change to exit reset if the driver has been +removed, but does not free reset work items of the adapter from queue. + +Ensure all reset work items are freed when breaking out of the loop early. + +Fixes: 36f1031c51a2 ("ibmnvic: Do not process reset during or after device removal”) +Signed-off-by: Juliet Kim +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + drivers/net/ethernet/ibm/ibmvnic.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c +index 5a57be66a4872..f232943c818bf 100644 +--- a/drivers/net/ethernet/ibm/ibmvnic.c ++++ b/drivers/net/ethernet/ibm/ibmvnic.c +@@ -2000,7 +2000,10 @@ static void __ibmvnic_reset(struct work_struct *work) + while (rwi) { + if (adapter->state == VNIC_REMOVING || + adapter->state == VNIC_REMOVED) +- goto out; ++ kfree(rwi); ++ rc = EBUSY; ++ break; ++ } + + if (adapter->force_reset_recovery) { + adapter->force_reset_recovery = false; +@@ -2026,7 +2029,7 @@ static void __ibmvnic_reset(struct work_struct *work) + netdev_dbg(adapter->netdev, "Reset failed\n"); + free_all_rwi(adapter); + } +-out: ++ + adapter->resetting = false; + if (we_lock_rtnl) + rtnl_unlock(); +-- +2.20.1 + diff --git a/queue-4.19/revert-bluetooth-validate-ble-connection-interval-up.patch b/queue-4.19/revert-bluetooth-validate-ble-connection-interval-up.patch new file mode 100644 index 00000000000..2033311b659 --- /dev/null +++ b/queue-4.19/revert-bluetooth-validate-ble-connection-interval-up.patch @@ -0,0 +1,62 @@ +From 9212388b800f29d808d19bb547a5f1705a7573b8 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 4 Sep 2019 20:13:08 +0200 +Subject: Revert "Bluetooth: validate BLE connection interval updates" + +From: Marcel Holtmann + +[ Upstream commit 68d19d7d995759b96169da5aac313363f92a9075 ] + +This reverts commit c49a8682fc5d298d44e8d911f4fa14690ea9485e. + +There are devices which require low connection intervals for usable operation +including keyboards and mice. Forcing a static connection interval for +these types of devices has an impact in latency and causes a regression. + +Signed-off-by: Marcel Holtmann +Signed-off-by: Johan Hedberg +Signed-off-by: Sasha Levin +--- + net/bluetooth/hci_event.c | 5 ----- + net/bluetooth/l2cap_core.c | 9 +-------- + 2 files changed, 1 insertion(+), 13 deletions(-) + +diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c +index 0adcddb211fa5..3e7badb3ac2d5 100644 +--- a/net/bluetooth/hci_event.c ++++ b/net/bluetooth/hci_event.c +@@ -5545,11 +5545,6 @@ static void hci_le_remote_conn_param_req_evt(struct hci_dev *hdev, + return send_conn_param_neg_reply(hdev, handle, + HCI_ERROR_UNKNOWN_CONN_ID); + +- if (min < hcon->le_conn_min_interval || +- max > hcon->le_conn_max_interval) +- return send_conn_param_neg_reply(hdev, handle, +- HCI_ERROR_INVALID_LL_PARAMS); +- + if (hci_check_conn_params(min, max, latency, timeout)) + return send_conn_param_neg_reply(hdev, handle, + HCI_ERROR_INVALID_LL_PARAMS); +diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c +index a54dadf4a6ca0..260ef5426e0ca 100644 +--- a/net/bluetooth/l2cap_core.c ++++ b/net/bluetooth/l2cap_core.c +@@ -5287,14 +5287,7 @@ static inline int l2cap_conn_param_update_req(struct l2cap_conn *conn, + + memset(&rsp, 0, sizeof(rsp)); + +- if (min < hcon->le_conn_min_interval || +- max > hcon->le_conn_max_interval) { +- BT_DBG("requested connection interval exceeds current bounds."); +- err = -EINVAL; +- } else { +- err = hci_check_conn_params(min, max, latency, to_multiplier); +- } +- ++ err = hci_check_conn_params(min, max, latency, to_multiplier); + if (err) + rsp.result = cpu_to_le16(L2CAP_CONN_PARAM_REJECTED); + else +-- +2.20.1 + diff --git a/queue-4.19/series b/queue-4.19/series new file mode 100644 index 00000000000..bd4c1c39413 --- /dev/null +++ b/queue-4.19/series @@ -0,0 +1,2 @@ +revert-bluetooth-validate-ble-connection-interval-up.patch +net-ibmvnic-free-reset-work-of-removed-device-from-q.patch