Re: linux-next: Tree for July 20 (acpi/apei/ghes)

From: Len Brown
Date: Tue Aug 02 2011 - 18:05:15 EST


From: Len Brown <len.brown@xxxxxxxxx>
Subject: [PATCH] APEI GHES: 32-bit buildfix

drivers/acpi/apei/ghes.c:542: warning: integer overflow in expression
drivers/acpi/apei/ghes.c:619: warning: integer overflow in expression

ghes.c:(.text+0x46289): undefined reference to `__udivdi3'
  in function ghes_estatus_cache_add().

Reported-by: Randy Dunlap <rdunlap@xxxxxxxxxxxx>
Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
---
drivers/acpi/apei/ghes.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
index e92c47c..0784f99 100644
--- a/drivers/acpi/apei/ghes.c
+++ b/drivers/acpi/apei/ghes.c
@@ -65,7 +65,7 @@

#define GHES_ESTATUS_CACHES_SIZE 4

-#define GHES_ESTATUS_IN_CACHE_MAX_NSEC (10 * NSEC_PER_SEC)
+#define GHES_ESTATUS_IN_CACHE_MAX_NSEC 10000000000ULL
/* Prevent too many caches are allocated because of RCU */
#define GHES_ESTATUS_CACHE_ALLOCED_MAX (GHES_ESTATUS_CACHES_SIZE * 3 / 2)

@@ -622,7 +622,8 @@ static void ghes_estatus_cache_add(
break;
}
count = atomic_read(&cache->count);
- period = duration / (count + 1);
+ period = duration;
+ do_div(period, (count + 1));
if (period > max_period) {
max_period = period;
slot = i;
--
1.7.6.396.ge0613