| From 910573d82ca9be8638b92c644544ba6f92772103 Mon Sep 17 00:00:00 2001 |
| From: Hiroaki SHIMODA <shimoda.hiroaki@gmail.com> |
| Date: Wed, 30 May 2012 12:24:39 +0000 |
| Subject: bql: Fix POSDIFF() to integer overflow aware. |
| |
| |
| From: Hiroaki SHIMODA <shimoda.hiroaki@gmail.com> |
| |
| [ Upstream commit 0cfd32b736ae0c36b42697584811042726c07cba ] |
| |
| POSDIFF() fails to take into account integer overflow case. |
| |
| Signed-off-by: Hiroaki SHIMODA <shimoda.hiroaki@gmail.com> |
| Cc: Tom Herbert <therbert@google.com> |
| Cc: Eric Dumazet <eric.dumazet@gmail.com> |
| Cc: Denys Fedoryshchenko <denys@visp.net.lb> |
| Acked-by: Eric Dumazet <edumazet@google.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| lib/dynamic_queue_limits.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/lib/dynamic_queue_limits.c |
| +++ b/lib/dynamic_queue_limits.c |
| @@ -10,7 +10,7 @@ |
| #include <linux/jiffies.h> |
| #include <linux/dynamic_queue_limits.h> |
| |
| -#define POSDIFF(A, B) ((A) > (B) ? (A) - (B) : 0) |
| +#define POSDIFF(A, B) ((int)((A) - (B)) > 0 ? (A) - (B) : 0) |
| |
| /* Records completed count and recalculates the queue limit */ |
| void dql_completed(struct dql *dql, unsigned int count) |