summaryrefslogtreecommitdiff
path: root/block/blk-iocost.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-12-20 09:58:10 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-12-20 09:58:10 +0100
commit236c9ad1f87088bb07ebdd136b8432f83dfd1e14 (patch)
treeae8713c9878593521f2cb517891f123f178fdd83 /block/blk-iocost.c
parentf2b42379c57682d4b127283da109fa1a3317966a (diff)
parenta7904a538933c525096ca2ccde1e60d0ee62c08e (diff)
Merge 5.16-rc6 into usb-next
We need the USB fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'block/blk-iocost.c')
-rw-r--r--block/blk-iocost.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/block/blk-iocost.c b/block/blk-iocost.c
index a5b37cc65b17..769b64394298 100644
--- a/block/blk-iocost.c
+++ b/block/blk-iocost.c
@@ -2311,7 +2311,14 @@ static void ioc_timer_fn(struct timer_list *timer)
hwm = current_hweight_max(iocg);
new_hwi = hweight_after_donation(iocg, old_hwi, hwm,
usage, &now);
- if (new_hwi < hwm) {
+ /*
+ * Donation calculation assumes hweight_after_donation
+ * to be positive, a condition that a donor w/ hwa < 2
+ * can't meet. Don't bother with donation if hwa is
+ * below 2. It's not gonna make a meaningful difference
+ * anyway.
+ */
+ if (new_hwi < hwm && hwa >= 2) {
iocg->hweight_donating = hwa;
iocg->hweight_after_donation = new_hwi;
list_add(&iocg->surplus_list, &surpluses);