Commit 0e97456ab5ba2761892d9e67b7e3b0cac262141c

Authored by Linus Torvalds

Merge branch 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k

Pull m68k updates from Geert Uytterhoeven.

* 'for-3.11' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k/q40: Enable PC parallel port in defconfig
  m68k/q40: Undefine insl/outsl before redefining them
  m68k/uaccess: Fix asm constraints for userspace access
  swim: Release memory region after incorrect return/goto
  m68k/irq: Vector ints need a valid interrupt handler
  m68k/math-emu: unsigned issue, 'unsigned long' will never be less than zero
  m68k: remove CONFIG_EARLY_PRINTK dependency on CONFIG_EMBEDDED, default to n
  m68k/sun3: remove inline marking of EXPORT_SYMBOL functions
  [SCSI] a3000: use module_platform_driver_probe()
  [SCSI] a4000t: use module_platform_driver_probe()
  m68k: Remove inline strcpy() and strcat() implementations

Showing 15 changed files Side-by-side Diff

arch/m68k/Kconfig.debug
... ... @@ -11,9 +11,8 @@
11 11 depends on BOOTPARAM
12 12  
13 13 config EARLY_PRINTK
14   - bool "Early printk" if EMBEDDED
  14 + bool "Early printk"
15 15 depends on MVME16x || MAC
16   - default y
17 16 help
18 17 Write kernel log output directly to a serial port.
19 18  
arch/m68k/configs/multi_defconfig
... ... @@ -214,6 +214,7 @@
214 214 # CONFIG_FW_LOADER_USER_HELPER is not set
215 215 CONFIG_CONNECTOR=m
216 216 CONFIG_PARPORT=m
  217 +CONFIG_PARPORT_PC=m
217 218 CONFIG_PARPORT_AMIGA=m
218 219 CONFIG_PARPORT_MFC3=m
219 220 CONFIG_PARPORT_ATARI=m
... ... @@ -325,6 +326,7 @@
325 326 # CONFIG_NET_VENDOR_SEEQ is not set
326 327 # CONFIG_NET_VENDOR_STMICRO is not set
327 328 # CONFIG_NET_VENDOR_WIZNET is not set
  329 +CONFIG_PLIP=m
328 330 CONFIG_PPP=m
329 331 CONFIG_PPP_BSDCOMP=m
330 332 CONFIG_PPP_DEFLATE=m
arch/m68k/configs/q40_defconfig
... ... @@ -199,6 +199,9 @@
199 199 # CONFIG_FIRMWARE_IN_KERNEL is not set
200 200 # CONFIG_FW_LOADER_USER_HELPER is not set
201 201 CONFIG_CONNECTOR=m
  202 +CONFIG_PARPORT=m
  203 +CONFIG_PARPORT_PC=m
  204 +CONFIG_PARPORT_1284=y
202 205 CONFIG_BLK_DEV_LOOP=y
203 206 CONFIG_BLK_DEV_CRYPTOLOOP=m
204 207 CONFIG_BLK_DEV_DRBD=m
... ... @@ -267,6 +270,7 @@
267 270 # CONFIG_NET_VENDOR_SMSC is not set
268 271 # CONFIG_NET_VENDOR_STMICRO is not set
269 272 # CONFIG_NET_VENDOR_WIZNET is not set
  273 +CONFIG_PLIP=m
270 274 CONFIG_PPP=m
271 275 CONFIG_PPP_BSDCOMP=m
272 276 CONFIG_PPP_DEFLATE=m
273 277  
... ... @@ -292,9 +296,11 @@
292 296 CONFIG_VT_HW_CONSOLE_BINDING=y
293 297 # CONFIG_LEGACY_PTYS is not set
294 298 # CONFIG_DEVKMEM is not set
  299 +CONFIG_PRINTER=m
295 300 # CONFIG_HW_RANDOM is not set
296 301 CONFIG_NTP_PPS=y
297 302 CONFIG_PPS_CLIENT_LDISC=m
  303 +CONFIG_PPS_CLIENT_PARPORT=m
298 304 CONFIG_PTP_1588_CLOCK=m
299 305 # CONFIG_HWMON is not set
300 306 CONFIG_FB=y
arch/m68k/include/asm/parport.h
... ... @@ -11,6 +11,8 @@
11 11 #ifndef _ASM_M68K_PARPORT_H
12 12 #define _ASM_M68K_PARPORT_H 1
13 13  
  14 +#undef insl
  15 +#undef outsl
14 16 #define insl(port,buf,len) isa_insb(port,buf,(len)<<2)
15 17 #define outsl(port,buf,len) isa_outsb(port,buf,(len)<<2)
16 18  
arch/m68k/include/asm/string.h
... ... @@ -4,20 +4,6 @@
4 4 #include <linux/types.h>
5 5 #include <linux/compiler.h>
6 6  
7   -static inline char *__kernel_strcpy(char *dest, const char *src)
8   -{
9   - char *xdest = dest;
10   -
11   - asm volatile ("\n"
12   - "1: move.b (%1)+,(%0)+\n"
13   - " jne 1b"
14   - : "+a" (dest), "+a" (src)
15   - : : "memory");
16   - return xdest;
17   -}
18   -
19   -#ifndef __IN_STRING_C
20   -
21 7 #define __HAVE_ARCH_STRNLEN
22 8 static inline size_t strnlen(const char *s, size_t count)
23 9 {
... ... @@ -34,16 +20,6 @@
34 20 return sc - s;
35 21 }
36 22  
37   -#define __HAVE_ARCH_STRCPY
38   -#if __GNUC__ >= 4
39   -#define strcpy(d, s) (__builtin_constant_p(s) && \
40   - __builtin_strlen(s) <= 32 ? \
41   - __builtin_strcpy(d, s) : \
42   - __kernel_strcpy(d, s))
43   -#else
44   -#define strcpy(d, s) __kernel_strcpy(d, s)
45   -#endif
46   -
47 23 #define __HAVE_ARCH_STRNCPY
48 24 static inline char *strncpy(char *dest, const char *src, size_t n)
49 25 {
... ... @@ -61,12 +37,6 @@
61 37 return xdest;
62 38 }
63 39  
64   -#define __HAVE_ARCH_STRCAT
65   -#define strcat(d, s) ({ \
66   - char *__d = (d); \
67   - strcpy(__d + strlen(__d), (s)); \
68   -})
69   -
70 40 #ifndef CONFIG_COLDFIRE
71 41 #define __HAVE_ARCH_STRCMP
72 42 static inline int strcmp(const char *cs, const char *ct)
... ... @@ -99,8 +69,6 @@
99 69 #define __HAVE_ARCH_MEMCPY
100 70 extern void *memcpy(void *, const void *, __kernel_size_t);
101 71 #define memcpy(d, s, n) __builtin_memcpy(d, s, n)
102   -
103   -#endif
104 72  
105 73 #endif /* _M68K_STRING_H_ */
arch/m68k/include/asm/uaccess_mm.h
... ... @@ -90,7 +90,7 @@
90 90 __put_user_asm(__pu_err, __pu_val, ptr, b, d, -EFAULT); \
91 91 break; \
92 92 case 2: \
93   - __put_user_asm(__pu_err, __pu_val, ptr, w, d, -EFAULT); \
  93 + __put_user_asm(__pu_err, __pu_val, ptr, w, r, -EFAULT); \
94 94 break; \
95 95 case 4: \
96 96 __put_user_asm(__pu_err, __pu_val, ptr, l, r, -EFAULT); \
... ... @@ -158,7 +158,7 @@
158 158 __get_user_asm(__gu_err, x, ptr, u8, b, d, -EFAULT); \
159 159 break; \
160 160 case 2: \
161   - __get_user_asm(__gu_err, x, ptr, u16, w, d, -EFAULT); \
  161 + __get_user_asm(__gu_err, x, ptr, u16, w, r, -EFAULT); \
162 162 break; \
163 163 case 4: \
164 164 __get_user_asm(__gu_err, x, ptr, u32, l, r, -EFAULT); \
... ... @@ -245,7 +245,7 @@
245 245 __get_user_asm(res, *(u8 *)to, (u8 __user *)from, u8, b, d, 1);
246 246 break;
247 247 case 2:
248   - __get_user_asm(res, *(u16 *)to, (u16 __user *)from, u16, w, d, 2);
  248 + __get_user_asm(res, *(u16 *)to, (u16 __user *)from, u16, w, r, 2);
249 249 break;
250 250 case 3:
251 251 __constant_copy_from_user_asm(res, to, from, tmp, 3, w, b,);
... ... @@ -326,7 +326,7 @@
326 326 __put_user_asm(res, *(u8 *)from, (u8 __user *)to, b, d, 1);
327 327 break;
328 328 case 2:
329   - __put_user_asm(res, *(u16 *)from, (u16 __user *)to, w, d, 2);
  329 + __put_user_asm(res, *(u16 *)from, (u16 __user *)to, w, r, 2);
330 330 break;
331 331 case 3:
332 332 __constant_copy_to_user_asm(res, to, from, tmp, 3, w, b,);
arch/m68k/kernel/ints.c
... ... @@ -101,7 +101,7 @@
101 101 BUG_ON(IRQ_USER + cnt > NR_IRQS);
102 102 m68k_first_user_vec = vec;
103 103 for (i = 0; i < cnt; i++)
104   - irq_set_chip(IRQ_USER + i, &user_irq_chip);
  104 + irq_set_chip_and_handler(i, &user_irq_chip, handle_simple_irq);
105 105 *user_irqvec_fixup = vec - IRQ_USER;
106 106 flush_icache();
107 107 }
arch/m68k/lib/Makefile
... ... @@ -6,7 +6,7 @@
6 6 lib-y := ashldi3.o ashrdi3.o lshrdi3.o muldi3.o \
7 7 memcpy.o memset.o memmove.o
8 8  
9   -lib-$(CONFIG_MMU) += string.o uaccess.o
  9 +lib-$(CONFIG_MMU) += uaccess.o
10 10 lib-$(CONFIG_CPU_HAS_NO_MULDIV64) += mulsi3.o divsi3.o udivsi3.o
11 11 lib-$(CONFIG_CPU_HAS_NO_MULDIV64) += modsi3.o umodsi3.o
12 12  
arch/m68k/lib/string.c
1   -/*
2   - * This file is subject to the terms and conditions of the GNU General Public
3   - * License. See the file COPYING in the main directory of this archive
4   - * for more details.
5   - */
6   -
7   -#define __IN_STRING_C
8   -
9   -#include <linux/module.h>
10   -#include <linux/string.h>
11   -
12   -char *strcpy(char *dest, const char *src)
13   -{
14   - return __kernel_strcpy(dest, src);
15   -}
16   -EXPORT_SYMBOL(strcpy);
17   -
18   -char *strcat(char *dest, const char *src)
19   -{
20   - return __kernel_strcpy(dest + strlen(dest), src);
21   -}
22   -EXPORT_SYMBOL(strcat);
arch/m68k/lib/uaccess.c
... ... @@ -52,7 +52,7 @@
52 52 " .long 3b,30b\n"
53 53 " .long 5b,50b\n"
54 54 " .previous"
55   - : "=d" (res), "+a" (from), "+a" (to), "=&r" (tmp)
  55 + : "=d" (res), "+a" (from), "+a" (to), "=&d" (tmp)
56 56 : "0" (n / 4), "d" (n & 3));
57 57  
58 58 return res;
... ... @@ -96,7 +96,7 @@
96 96 " .long 7b,50b\n"
97 97 " .long 8b,50b\n"
98 98 " .previous"
99   - : "=d" (res), "+a" (from), "+a" (to), "=&r" (tmp)
  99 + : "=d" (res), "+a" (from), "+a" (to), "=&d" (tmp)
100 100 : "0" (n / 4), "d" (n & 3));
101 101  
102 102 return res;
... ... @@ -141,7 +141,7 @@
141 141 " .long 7b,40b\n"
142 142 " .previous"
143 143 : "=d" (res), "+a" (to)
144   - : "r" (0), "0" (n / 4), "d" (n & 3));
  144 + : "d" (0), "0" (n / 4), "d" (n & 3));
145 145  
146 146 return res;
147 147 }
arch/m68k/math-emu/fp_arith.c
... ... @@ -519,7 +519,7 @@
519 519 return;
520 520 break;
521 521 case 0x401e:
522   - if (!(oldmant.m32[1] >= 0))
  522 + if (oldmant.m32[1] & 0x80000000)
523 523 return;
524 524 if (oldmant.m32[0] & 1)
525 525 break;
arch/m68k/sun3/sun3dvma.c
... ... @@ -275,7 +275,7 @@
275 275  
276 276 }
277 277  
278   -inline unsigned long dvma_map_align(unsigned long kaddr, int len, int align)
  278 +unsigned long dvma_map_align(unsigned long kaddr, int len, int align)
279 279 {
280 280  
281 281 unsigned long baddr;
drivers/block/swim.c
... ... @@ -893,7 +893,7 @@
893 893  
894 894 swim_base = ioremap(res->start, resource_size(res));
895 895 if (!swim_base) {
896   - return -ENOMEM;
  896 + ret = -ENOMEM;
897 897 goto out_release_io;
898 898 }
899 899  
drivers/scsi/a3000.c
... ... @@ -280,18 +280,7 @@
280 280 },
281 281 };
282 282  
283   -static int __init amiga_a3000_scsi_init(void)
284   -{
285   - return platform_driver_probe(&amiga_a3000_scsi_driver,
286   - amiga_a3000_scsi_probe);
287   -}
288   -module_init(amiga_a3000_scsi_init);
289   -
290   -static void __exit amiga_a3000_scsi_exit(void)
291   -{
292   - platform_driver_unregister(&amiga_a3000_scsi_driver);
293   -}
294   -module_exit(amiga_a3000_scsi_exit);
  283 +module_platform_driver_probe(amiga_a3000_scsi_driver, amiga_a3000_scsi_probe);
295 284  
296 285 MODULE_DESCRIPTION("Amiga 3000 built-in SCSI");
297 286 MODULE_LICENSE("GPL");
drivers/scsi/a4000t.c
... ... @@ -116,20 +116,7 @@
116 116 },
117 117 };
118 118  
119   -static int __init amiga_a4000t_scsi_init(void)
120   -{
121   - return platform_driver_probe(&amiga_a4000t_scsi_driver,
122   - amiga_a4000t_scsi_probe);
123   -}
124   -
125   -module_init(amiga_a4000t_scsi_init);
126   -
127   -static void __exit amiga_a4000t_scsi_exit(void)
128   -{
129   - platform_driver_unregister(&amiga_a4000t_scsi_driver);
130   -}
131   -
132   -module_exit(amiga_a4000t_scsi_exit);
  119 +module_platform_driver_probe(amiga_a4000t_scsi_driver, amiga_a4000t_scsi_probe);
133 120  
134 121 MODULE_AUTHOR("Alan Hourihane <alanh@fairlite.demon.co.uk> / "
135 122 "Kars de Jong <jongk@linux-m68k.org>");