diff -Nru irqbalance-1.8.0/debian/changelog irqbalance-1.8.0/debian/changelog --- irqbalance-1.8.0/debian/changelog 2022-03-24 08:59:17.000000000 -0300 +++ irqbalance-1.8.0/debian/changelog 2023-10-04 12:54:18.000000000 -0300 @@ -1,3 +1,10 @@ +irqbalance (1.8.0-1ubuntu0.1) jammy; urgency=medium + + * d/p/lp2038573-fix-unsigned-integer-subtraction-sign-overflow.patch: + Do not stop balancing IRQs due to unsigned int issue. (LP: #2038573) + + -- Mauricio Faria de Oliveira Wed, 04 Oct 2023 12:54:18 -0300 + irqbalance (1.8.0-1build1) jammy; urgency=high * No change rebuild for ppc64el baseline bump. diff -Nru irqbalance-1.8.0/debian/patches/lp2038573-fix-unsigned-integer-subtraction-sign-overflow.patch irqbalance-1.8.0/debian/patches/lp2038573-fix-unsigned-integer-subtraction-sign-overflow.patch --- irqbalance-1.8.0/debian/patches/lp2038573-fix-unsigned-integer-subtraction-sign-overflow.patch 1969-12-31 21:00:00.000000000 -0300 +++ irqbalance-1.8.0/debian/patches/lp2038573-fix-unsigned-integer-subtraction-sign-overflow.patch 2023-10-04 12:54:18.000000000 -0300 @@ -0,0 +1,26 @@ +Origin: upstream, https://github.com/Irqbalance/irqbalance/commit/2a66a666d3e202dec5b1a4309447e32d5f292871 +Bug-Ubuntu: https://bugs.launchpad.net/bugs/2038573 + +From 2a66a666d3e202dec5b1a4309447e32d5f292871 Mon Sep 17 00:00:00 2001 +From: liuchao173 <55137861+liuchao173@users.noreply.github.com> +Date: Tue, 24 Aug 2021 20:50:18 +0800 +Subject: [PATCH] fix unsigned integer subtraction sign overflow + +Min_load, adjustment_load and load are unsigned integers, so it overflows when (lb_info->min_load + info->load) < (lb_info->adjustment_load - info->load). The result will be greater than zero. Therefore the irq cannot be selected to rebalanced. +--- + irqlist.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/irqlist.c b/irqlist.c +index 9ab321a..4dd4a83 100644 +--- a/irqlist.c ++++ b/irqlist.c +@@ -97,7 +97,7 @@ static void move_candidate_irqs(struct irq_info *info, void *data) + } + + /* If we can migrate an irq without swapping the imbalance do it. */ +- if ((lb_info->min_load + info->load) - (lb_info->adjustment_load - info->load) < delta_load) { ++ if ((lb_info->min_load + info->load) < delta_load + (lb_info->adjustment_load - info->load)) { + lb_info->adjustment_load -= info->load; + lb_info->min_load += info->load; + if (lb_info->min_load > lb_info->adjustment_load) { diff -Nru irqbalance-1.8.0/debian/patches/series irqbalance-1.8.0/debian/patches/series --- irqbalance-1.8.0/debian/patches/series 1969-12-31 21:00:00.000000000 -0300 +++ irqbalance-1.8.0/debian/patches/series 2023-10-04 12:54:18.000000000 -0300 @@ -0,0 +1 @@ +lp2038573-fix-unsigned-integer-subtraction-sign-overflow.patch