powerpc/iseries/pci: Use __ratelimit
authorAkinobu Mita <akinobu.mita@gmail.com>
Sun, 28 Feb 2010 00:58:16 +0000 (00:58 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 7 Apr 2010 08:00:50 +0000 (18:00 +1000)
Replace open-coded rate limiting logic with __ratelimit().

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: linuxppc-dev@ozlabs.org
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/iseries/pci.c

index b841c9a..3fc2e64 100644 (file)
@@ -32,6 +32,7 @@
 #include <linux/module.h>
 #include <linux/pci.h>
 #include <linux/of.h>
+#include <linux/ratelimit.h>
 
 #include <asm/types.h>
 #include <asm/io.h>
@@ -584,14 +585,9 @@ static inline struct device_node *xlate_iomm_address(
 
        orig_addr = (unsigned long __force)addr;
        if ((orig_addr < BASE_IO_MEMORY) || (orig_addr >= max_io_memory)) {
-               static unsigned long last_jiffies;
-               static int num_printed;
+               static DEFINE_RATELIMIT_STATE(ratelimit, 60 * HZ, 10);
 
-               if (time_after(jiffies, last_jiffies + 60 * HZ)) {
-                       last_jiffies = jiffies;
-                       num_printed = 0;
-               }
-               if (num_printed++ < 10)
+               if (__ratelimit(&ratelimit))
                        printk(KERN_ERR
                                "iSeries_%s: invalid access at IO address %p\n",
                                func, addr);