drm/drm_crtc: return -EFAULT on copy_to_user errors
[safe/jmp/linux-2.6] / drivers / serial / 68328serial.c
index d935b2d..3046386 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/pm.h>
 #include <linux/bitops.h>
 #include <linux/delay.h>
+#include <linux/gfp.h>
 
 #include <asm/io.h>
 #include <asm/irq.h>
@@ -153,8 +154,6 @@ static int baud_table[] = {
        0, 50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
        9600, 19200, 38400, 57600, 115200, 0 };
 
-#define BAUD_TABLE_SIZE (sizeof(baud_table)/sizeof(baud_table[0]))
-
 /* Sets or clears DTR/RTS on the requested line */
 static inline void m68k_rtsdtr(struct m68k_serial *ss, int set)
 {
@@ -1406,10 +1405,10 @@ static void m68328_set_baud(void)
        USTCNT = ustcnt & ~USTCNT_TXEN;
 
 again:
-       for (i = 0; i < sizeof(baud_table) / sizeof(baud_table[0]); i++)
+       for (i = 0; i < ARRAY_SIZE(baud_table); i++)
                if (baud_table[i] == m68328_console_baud)
                        break;
-       if (i >= sizeof(baud_table) / sizeof(baud_table[0])) {
+       if (i >= ARRAY_SIZE(baud_table)) {
                m68328_console_baud = 9600;
                goto again;
        }
@@ -1435,10 +1434,10 @@ int m68328_console_setup(struct console *cp, char *arg)
        if (arg)
                n = simple_strtoul(arg,NULL,0);
 
-       for (i = 0; i < BAUD_TABLE_SIZE; i++)
+       for (i = 0; i < ARRAY_SIZE(baud_table); i++)
                if (baud_table[i] == n)
                        break;
-       if (i < BAUD_TABLE_SIZE) {
+       if (i < ARRAY_SIZE(baud_table)) {
                m68328_console_baud = n;
                m68328_console_cbaud = 0;
                if (i > 15) {