[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20230609131817.712867-3-xianting.tian@linux.alibaba.com>
Date:   Fri,  9 Jun 2023 21:18:16 +0800
From:   Xianting Tian <xianting.tian@...ux.alibaba.com>
To:     arei.gonglei@...wei.com, mst@...hat.com, jasowang@...hat.com,
        xuanzhuo@...ux.alibaba.com, herbert@...dor.apana.org.au,
        davem@...emloft.net, amit@...nel.org, arnd@...db.de,
        gregkh@...uxfoundation.org, marcel@...tmann.org,
        johan.hedberg@...il.com, luiz.dentz@...il.com
Cc:     linux-bluetooth@...r.kernel.org,
        virtualization@...ts.linux-foundation.org,
        linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org,
        Xianting Tian <xianting.tian@...ux.alibaba.com>
Subject: [PATCH 2/3] virtio_console: fixup potential cpu stall when free unused bufs
Cpu stall issue may happen if device is configured with multi queues
and large queue depth, so fix it.
Signed-off-by: Xianting Tian <xianting.tian@...ux.alibaba.com>
---
 drivers/char/virtio_console.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
index b65c809a4e97..5ec4cf4ea919 100644
--- a/drivers/char/virtio_console.c
+++ b/drivers/char/virtio_console.c
@@ -1935,6 +1935,7 @@ static void remove_vqs(struct ports_device *portdev)
 		flush_bufs(vq, true);
 		while ((buf = virtqueue_detach_unused_buf(vq)))
 			free_buf(buf, true);
+		cond_resched();
 	}
 	portdev->vdev->config->del_vqs(portdev->vdev);
 	kfree(portdev->in_vqs);
-- 
2.17.1
Powered by blists - more mailing lists
 
