From: Greg Kroah-Hartman Date: Tue, 25 Jun 2019 03:33:01 +0000 (+0800) Subject: drop broken ib patch from 4.4 X-Git-Tag: v5.1.15~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4d16eab286bd56d46d3b651846bc0fd21241fda7;p=thirdparty%2Fkernel%2Fstable-queue.git drop broken ib patch from 4.4 --- diff --git a/queue-4.4/ib-hfi1-avoid-hardlockup-with-flushlist_lock.patch b/queue-4.4/ib-hfi1-avoid-hardlockup-with-flushlist_lock.patch deleted file mode 100644 index 24ea5e804e5..00000000000 --- a/queue-4.4/ib-hfi1-avoid-hardlockup-with-flushlist_lock.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 90b648b15d12e81d307027414de915852ec0b558 Mon Sep 17 00:00:00 2001 -From: Mike Marciniszyn -Date: Mon, 24 Jun 2019 11:56:02 -0400 -Subject: IB/hfi1: Avoid hardlockup with flushlist_lock - -[ Upstream commit cf131a81967583ae737df6383a0893b9fee75b4e ] - -Heavy contention of the sde flushlist_lock can cause hard lockups at -extreme scale when the flushing logic is under stress. - -Mitigate by replacing the item at a time copy to the local list with -an O(1) list_splice_init() and using the high priority work queue to -do the flushes. - -Fixes: 7724105686e7 ("IB/hfi1: add driver files") -Cc: -Reviewed-by: Dennis Dalessandro -Signed-off-by: Mike Marciniszyn -Signed-off-by: Dennis Dalessandro -Signed-off-by: Doug Ledford -Signed-off-by: Sasha Levin ---- - drivers/staging/rdma/hfi1/sdma.c | 9 +++------ - 1 file changed, 3 insertions(+), 6 deletions(-) - -diff --git a/drivers/staging/rdma/hfi1/sdma.c b/drivers/staging/rdma/hfi1/sdma.c -index 2a1da2189900..68df64b6c2e4 100644 ---- a/drivers/staging/rdma/hfi1/sdma.c -+++ b/drivers/staging/rdma/hfi1/sdma.c -@@ -390,10 +390,7 @@ static void sdma_flush(struct sdma_engine *sde) - sdma_flush_descq(sde); - spin_lock_irqsave(&sde->flushlist_lock, flags); - /* copy flush list */ -- list_for_each_entry_safe(txp, txp_next, &sde->flushlist, list) { -- list_del_init(&txp->list); -- list_add_tail(&txp->list, &flushlist); -- } -+ list_splice_init(&sde->flushlist, &flushlist); - spin_unlock_irqrestore(&sde->flushlist_lock, flags); - /* flush from flush list */ - list_for_each_entry_safe(txp, txp_next, &flushlist, list) { -@@ -2103,7 +2100,7 @@ int sdma_send_txreq(struct sdma_engine *sde, - wait->tx_count++; - wait->count += tx->num_desc; - } -- schedule_work(&sde->flush_worker); -+ queue_work_on(sde->cpu, system_highpri_wq, &sde->flush_worker); - ret = -ECOMM; - goto unlock; - nodesc: -@@ -2196,7 +2193,7 @@ int sdma_send_txlist(struct sdma_engine *sde, - } - } - spin_unlock(&sde->flushlist_lock); -- schedule_work(&sde->flush_worker); -+ queue_work_on(sde->cpu, system_highpri_wq, &sde->flush_worker); - ret = -ECOMM; - goto update_tail; - nodesc: --- -2.20.1 - diff --git a/queue-4.4/series b/queue-4.4/series index 407a92fa43a..531057bc0b8 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -23,4 +23,3 @@ bluetooth-fix-regression-with-minimum-encryption-key-size-alignment.patch smb3-retry-on-status_insufficient_resources-instead-of-failing-write.patch cfg80211-fix-memory-leak-of-wiphy-device-name.patch mac80211-drop-robust-management-frames-from-unknown-ta.patch -ib-hfi1-avoid-hardlockup-with-flushlist_lock.patch