GIT c3d6ecc77e8e5d4ac82c3bf27ed02b8c0d83d41d git+ssh://master.kernel.org/pub/scm/linux/kernel/git/viro/bird.git#m68k.b14 commit c3d6ecc77e8e5d4ac82c3bf27ed02b8c0d83d41d Author: Al Viro Date: Sun Apr 2 23:39:59 2006 -0400 [PATCH] m68k: windfarm is powerpc-only, don't do it on m68k macs Signed-off-by: Al Viro commit bdc7b61b5412460e1c6d8c723e7744807d23131b Author: Al Viro Date: Wed Feb 1 07:04:38 2006 -0500 [PATCH] m68k traps.c constraints fix cast is not an lvalue; =r constraint wants an lvalue and really couldn't care whether it's void * or other pointer type. Signed-off-by: Al Viro commit 9543420d7b7dcdf350614976ecc3df882154d147 Author: Al Viro Date: Wed Feb 1 07:00:24 2006 -0500 [PATCH] misc m68k __user annotations Signed-off-by: Al Viro commit 904a77fc8bfa159204cc895d672096e5d3a5a46e Author: Al Viro Date: Wed Jan 18 19:32:23 2006 -0500 [PATCH] m68k: bogus constraints in signal.h bfset and friends need "o", not "m" - they don't work with autodecrement memory arguments. bitops.h had it fixed, signal.h hadn't... Signed-off-by: Al Viro commit decb104b0855d5a5bfcacbc8ec6ea444f2189366 Author: Al Viro Date: Wed Jan 18 18:41:42 2006 -0500 [PATCH] m68k: rename pmu_queue_request() in pmu68 ... has to be done, since our static function conflicts with global from via-pmu Signed-off-by: Al Viro commit 4f45646a5daab56c77b7f306b89ea84b70471a6d Author: Al Viro Date: Mon Dec 12 19:55:22 2005 -0500 [PATCH] m68k: more workarounds for recent binutils idiocy cretinous thing doesn't believe that (%a0)+ is one macro argument and splits it in two; worked around by quoting the argument... Signed-off-by: Al Viro commit 0c0a565d2a500294d281943708d4eb156d1a8e03 Author: Al Viro Date: Mon Dec 12 13:51:22 2005 -0500 [PATCH] m68k: fix macro syntax to make current binutils happy recent as(1) doesn't think that . terminates a macro name, so getuser.l is _not_ treated as invoking getuser with .l as the first argument. Signed-off-by: Al Viro --- Signed-off-by: Andrew Morton --- arch/m68k/kernel/process.c | 8 ++++---- arch/m68k/kernel/traps.c | 8 ++++---- arch/m68k/math-emu/fp_cond.S | 2 +- arch/m68k/math-emu/fp_decode.h | 4 ++-- arch/m68k/math-emu/fp_move.S | 14 +++++++------- arch/m68k/math-emu/fp_movem.S | 16 ++++++++-------- arch/m68k/math-emu/fp_scan.S | 22 +++++++++++----------- arch/m68k/math-emu/fp_util.S | 16 ++++++++-------- drivers/macintosh/Kconfig | 1 + drivers/macintosh/via-pmu68k.c | 22 +++++++++++----------- include/asm-m68k/signal.h | 6 +++--- 11 files changed, 60 insertions(+), 59 deletions(-) diff -puN arch/m68k/kernel/process.c~git-viro-bird-m68k arch/m68k/kernel/process.c --- devel/arch/m68k/kernel/process.c~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/kernel/process.c 2006-05-19 16:01:55.000000000 -0700 @@ -222,13 +222,13 @@ asmlinkage int m68k_clone(struct pt_regs { unsigned long clone_flags; unsigned long newsp; - int *parent_tidptr, *child_tidptr; + int __user *parent_tidptr, *child_tidptr; /* syscall2 puts clone_flags in d1 and usp in d2 */ clone_flags = regs->d1; newsp = regs->d2; - parent_tidptr = (int *)regs->d3; - child_tidptr = (int *)regs->d4; + parent_tidptr = (int __user *)regs->d3; + child_tidptr = (int __user *)regs->d4; if (!newsp) newsp = rdusp(); return do_fork(clone_flags, newsp, regs, 0, @@ -362,7 +362,7 @@ void dump_thread(struct pt_regs * regs, /* * sys_execve() executes a new program. */ -asmlinkage int sys_execve(char *name, char **argv, char **envp) +asmlinkage int sys_execve(char __user *name, char __user * __user *argv, char __user * __user *envp) { int error; char * filename; diff -puN arch/m68k/kernel/traps.c~git-viro-bird-m68k arch/m68k/kernel/traps.c --- devel/arch/m68k/kernel/traps.c~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/kernel/traps.c 2006-05-19 16:01:55.000000000 -0700 @@ -114,7 +114,7 @@ void __init base_trap_init(void) if(MACH_IS_SUN3X) { extern e_vector *sun3x_prom_vbr; - __asm__ volatile ("movec %%vbr, %0" : "=r" ((void*)sun3x_prom_vbr)); + __asm__ volatile ("movec %%vbr, %0" : "=r" (sun3x_prom_vbr)); } /* setup the exception vector table */ @@ -369,13 +369,13 @@ static inline int do_040writeback1(unsig switch (wbs & WBSIZ_040) { case BA_SIZE_BYTE: - res = put_user(wbd & 0xff, (char *)wba); + res = put_user(wbd & 0xff, (char __user *)wba); break; case BA_SIZE_WORD: - res = put_user(wbd & 0xffff, (short *)wba); + res = put_user(wbd & 0xffff, (short __user *)wba); break; case BA_SIZE_LONG: - res = put_user(wbd, (int *)wba); + res = put_user(wbd, (int __user *)wba); break; } diff -puN arch/m68k/math-emu/fp_cond.S~git-viro-bird-m68k arch/m68k/math-emu/fp_cond.S --- devel/arch/m68k/math-emu/fp_cond.S~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/math-emu/fp_cond.S 2006-05-19 16:01:55.000000000 -0700 @@ -163,7 +163,7 @@ fp_absolute_long: fp_do_scc: swap %d1 - putuser.b %d1,(%a0),fp_err_ua1,%a0 + putuser .b,%d1,(%a0),fp_err_ua1,%a0 printf PDECODE,"\n" jra fp_end diff -puN arch/m68k/math-emu/fp_decode.h~git-viro-bird-m68k arch/m68k/math-emu/fp_decode.h --- devel/arch/m68k/math-emu/fp_decode.h~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/math-emu/fp_decode.h 2006-05-19 16:01:55.000000000 -0700 @@ -311,7 +311,7 @@ debug move.l "(%sp)+,%d1" btst #2,%d2 jne 1f printf PDECODE,")@(" - getuser.l (%a1),%a1,fp_err_ua1,%a1 + getuser .l,(%a1),%a1,fp_err_ua1,%a1 debug jra "2f" 1: printf PDECODE,"," 2: @@ -322,7 +322,7 @@ debug jra "2f" btst #2,%d2 jeq 1f printf PDECODE,")@(" - getuser.l (%a1),%a1,fp_err_ua1,%a1 + getuser .l,(%a1),%a1,fp_err_ua1,%a1 debug jra "2f" 1: printf PDECODE,"," 2: diff -puN arch/m68k/math-emu/fp_movem.S~git-viro-bird-m68k arch/m68k/math-emu/fp_movem.S --- devel/arch/m68k/math-emu/fp_movem.S~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/math-emu/fp_movem.S 2006-05-19 16:01:55.000000000 -0700 @@ -141,14 +141,14 @@ fpr_do_movem: | move register from memory into fpu jra 3f 1: printf PMOVEM,"(%p>%p)",2,%a0,%a1 - getuser.l (%a0)+,%d2,fp_err_ua1,%a0 + getuser .l,"(%a0)+",%d2,fp_err_ua1,%a0 lsr.l #8,%d2 lsr.l #7,%d2 lsr.w #1,%d2 move.l %d2,(%a1)+ - getuser.l (%a0)+,%d2,fp_err_ua1,%a0 + getuser .l,"(%a0)+",%d2,fp_err_ua1,%a0 move.l %d2,(%a1)+ - getuser.l (%a0),%d2,fp_err_ua1,%a0 + getuser .l,(%a0),%d2,fp_err_ua1,%a0 move.l %d2,(%a1) subq.l #8,%a0 subq.l #8,%a1 @@ -164,11 +164,11 @@ fpr_do_movem: lsl.w #1,%d2 lsl.l #7,%d2 lsl.l #8,%d2 - putuser.l %d2,(%a0)+,fp_err_ua1,%a0 + putuser .l,%d2,"(%a0)+",fp_err_ua1,%a0 move.l (%a1)+,%d2 - putuser.l %d2,(%a0)+,fp_err_ua1,%a0 + putuser .l,%d2,"(%a0)+",fp_err_ua1,%a0 move.l (%a1),%d2 - putuser.l %d2,(%a0),fp_err_ua1,%a0 + putuser .l,%d2,(%a0),fp_err_ua1,%a0 subq.l #8,%a1 subq.l #8,%a0 add.l %d0,%a0 @@ -325,7 +325,7 @@ fpc_do_movem: | move register from memory into fpu jra 3f 1: printf PMOVEM,"(%p>%p)",2,%a0,%a1 - getuser.l (%a0)+,%d0,fp_err_ua1,%a0 + getuser .l,"(%a0)+",%d0,fp_err_ua1,%a0 move.l %d0,(%a1) 2: addq.l #4,%a1 3: lsl.b #1,%d1 @@ -336,7 +336,7 @@ fpc_do_movem: | move register from fpu into memory 1: printf PMOVEM,"(%p>%p)",2,%a1,%a0 move.l (%a1),%d0 - putuser.l %d0,(%a0)+,fp_err_ua1,%a0 + putuser .l,%d0,"(%a0)+",fp_err_ua1,%a0 2: addq.l #4,%a1 4: lsl.b #1,%d1 jcs 1b diff -puN arch/m68k/math-emu/fp_move.S~git-viro-bird-m68k arch/m68k/math-emu/fp_move.S --- devel/arch/m68k/math-emu/fp_move.S~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/math-emu/fp_move.S 2006-05-19 16:01:55.000000000 -0700 @@ -200,12 +200,12 @@ fp_putdest: fp_format_long: jsr fp_conv_ext2long - putuser.l %d0,(%a1),fp_err_ua1,%a1 + putuser .l,%d0,(%a1),fp_err_ua1,%a1 jra fp_finish_move fp_format_single: jsr fp_conv_ext2single - putuser.l %d0,(%a1),fp_err_ua1,%a1 + putuser .l,%d0,(%a1),fp_err_ua1,%a1 jra fp_finish_move fp_format_extended: @@ -213,11 +213,11 @@ fp_format_extended: lsl.w #1,%d0 lsl.l #7,%d0 lsl.l #8,%d0 - putuser.l %d0,(%a1)+,fp_err_ua1,%a1 + putuser .l,%d0,"(%a1)+",fp_err_ua1,%a1 move.l (%a0)+,%d0 - putuser.l %d0,(%a1)+,fp_err_ua1,%a1 + putuser .l,%d0,"(%a1)+",fp_err_ua1,%a1 move.l (%a0),%d0 - putuser.l %d0,(%a1),fp_err_ua1,%a1 + putuser .l,%d0,(%a1),fp_err_ua1,%a1 jra fp_finish_move fp_format_packed: @@ -227,7 +227,7 @@ fp_format_packed: fp_format_word: jsr fp_conv_ext2short - putuser.w %d0,(%a1),fp_err_ua1,%a1 + putuser .w,%d0,(%a1),fp_err_ua1,%a1 jra fp_finish_move fp_format_double: @@ -236,7 +236,7 @@ fp_format_double: fp_format_byte: jsr fp_conv_ext2byte - putuser.b %d0,(%a1),fp_err_ua1,%a1 + putuser .b,%d0,(%a1),fp_err_ua1,%a1 | jra fp_finish_move fp_finish_move: diff -puN arch/m68k/math-emu/fp_scan.S~git-viro-bird-m68k arch/m68k/math-emu/fp_scan.S --- devel/arch/m68k/math-emu/fp_scan.S~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/math-emu/fp_scan.S 2006-05-19 16:01:55.000000000 -0700 @@ -64,7 +64,7 @@ fp_scan: | normal fpu instruction? (this excludes fsave/frestore) fp_get_pc %a0 printf PDECODE,"%08x: ",1,%a0 - getuser.b (%a0),%d0,fp_err_ua1,%a0 + getuser .b,(%a0),%d0,fp_err_ua1,%a0 #if 1 cmp.b #0xf2,%d0 | cpid = 1 #else @@ -72,7 +72,7 @@ fp_scan: #endif jne fp_nonstd | first two instruction words are kept in %d2 - getuser.l (%a0)+,%d2,fp_err_ua1,%a0 + getuser .l,"(%a0)+",%d2,fp_err_ua1,%a0 fp_put_pc %a0 fp_decode_cond: | separate conditional instr fp_decode_cond_instr_type @@ -230,7 +230,7 @@ fp_immediate: movel %a0,%a1 clr.l %d1 jra 2f -1: getuser.b (%a1)+,%d1,fp_err_ua1,%a1 +1: getuser .b,(%a1)+,%d1,fp_err_ua1,%a1 printf PDECODE,"%02x",1,%d1 2: dbra %d0,1b movem.l (%sp)+,%d0/%d1 @@ -252,24 +252,24 @@ fp_fetchsource: .long fp_byte, fp_ill fp_long: - getuser.l (%a1),%d0,fp_err_ua1,%a1 + getuser .l,(%a1),%d0,fp_err_ua1,%a1 jsr fp_conv_long2ext jra fp_getdest fp_single: - getuser.l (%a1),%d0,fp_err_ua1,%a1 + getuser .l,(%a1),%d0,fp_err_ua1,%a1 jsr fp_conv_single2ext jra fp_getdest fp_ext: - getuser.l (%a1)+,%d0,fp_err_ua1,%a1 + getuser .l,"(%a1)+",%d0,fp_err_ua1,%a1 lsr.l #8,%d0 lsr.l #7,%d0 lsr.w #1,%d0 move.l %d0,(%a0)+ - getuser.l (%a1)+,%d0,fp_err_ua1,%a1 + getuser .l,"(%a1)+",%d0,fp_err_ua1,%a1 move.l %d0,(%a0)+ - getuser.l (%a1),%d0,fp_err_ua1,%a1 + getuser .l,(%a1),%d0,fp_err_ua1,%a1 move.l %d0,(%a0) subq.l #8,%a0 jra fp_getdest @@ -279,7 +279,7 @@ fp_pack: jra fp_ill fp_word: - getuser.w (%a1),%d0,fp_err_ua1,%a1 + getuser .w,(%a1),%d0,fp_err_ua1,%a1 ext.l %d0 jsr fp_conv_long2ext jra fp_getdest @@ -289,7 +289,7 @@ fp_double: jra fp_getdest fp_byte: - getuser.b (%a1),%d0,fp_err_ua1,%a1 + getuser .b,(%a1),%d0,fp_err_ua1,%a1 extb.l %d0 jsr fp_conv_long2ext | jra fp_getdest @@ -465,7 +465,7 @@ fp_fdsub: fp_nonstd: fp_get_pc %a0 - getuser.l (%a0),%d0,fp_err_ua1,%a0 + getuser .l,(%a0),%d0,fp_err_ua1,%a0 printf ,"nonstd ((%08x)=%08x)\n",2,%a0,%d0 moveq #-1,%d0 rts diff -puN arch/m68k/math-emu/fp_util.S~git-viro-bird-m68k arch/m68k/math-emu/fp_util.S --- devel/arch/m68k/math-emu/fp_util.S~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/arch/m68k/math-emu/fp_util.S 2006-05-19 16:01:55.000000000 -0700 @@ -160,11 +160,11 @@ fp_s2e_large: fp_conv_double2ext: #ifdef FPU_EMU_DEBUG - getuser.l %a1@(0),%d0,fp_err_ua2,%a1 - getuser.l %a1@(4),%d1,fp_err_ua2,%a1 + getuser .l,%a1@(0),%d0,fp_err_ua2,%a1 + getuser .l,%a1@(4),%d1,fp_err_ua2,%a1 printf PCONV,"d2e: %p%p -> %p(",3,%d0,%d1,%a0 #endif - getuser.l (%a1)+,%d0,fp_err_ua2,%a1 + getuser .l,"(%a1)+",%d0,fp_err_ua2,%a1 move.l %d0,%d1 lsl.l #8,%d0 | shift high mantissa lsl.l #3,%d0 @@ -178,7 +178,7 @@ fp_conv_double2ext: add.w #0x3fff-0x3ff,%d1 | re-bias the exponent. 9: move.l %d1,(%a0)+ | fp_ext.sign, fp_ext.exp move.l %d0,(%a0)+ - getuser.l (%a1)+,%d0,fp_err_ua2,%a1 + getuser .l,"(%a1)+",%d0,fp_err_ua2,%a1 move.l %d0,%d1 lsl.l #8,%d0 lsl.l #3,%d0 @@ -1287,17 +1287,17 @@ fp_conv_ext2double: lsr.l #4,%d0 lsr.l #8,%d0 or.l %d2,%d0 - putuser.l %d0,(%a1)+,fp_err_ua2,%a1 + putuser .l,%d0,"(%a1)+",fp_err_ua2,%a1 moveq #21,%d0 lsl.l %d0,%d1 move.l (%a0),%d0 lsr.l #4,%d0 lsr.l #7,%d0 or.l %d1,%d0 - putuser.l %d0,(%a1),fp_err_ua2,%a1 + putuser .l,%d0,(%a1),fp_err_ua2,%a1 #ifdef FPU_EMU_DEBUG - getuser.l %a1@(-4),%d0,fp_err_ua2,%a1 - getuser.l %a1@(0),%d1,fp_err_ua2,%a1 + getuser .l,%a1@(-4),%d0,fp_err_ua2,%a1 + getuser .l,%a1@(0),%d1,fp_err_ua2,%a1 printf PCONV,"%p(%08x%08x)\n",3,%a1,%d0,%d1 #endif rts diff -puN drivers/macintosh/Kconfig~git-viro-bird-m68k drivers/macintosh/Kconfig --- devel/drivers/macintosh/Kconfig~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/drivers/macintosh/Kconfig 2006-05-19 16:01:55.000000000 -0700 @@ -176,6 +176,7 @@ config THERM_PM72 config WINDFARM tristate "New PowerMac thermal control infrastructure" + depends on PPC config WINDFARM_PM81 tristate "Support for thermal management on iMac G5" diff -puN drivers/macintosh/via-pmu68k.c~git-viro-bird-m68k drivers/macintosh/via-pmu68k.c --- devel/drivers/macintosh/via-pmu68k.c~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/drivers/macintosh/via-pmu68k.c 2006-05-19 16:01:55.000000000 -0700 @@ -112,7 +112,7 @@ static int pmu_send_request(struct adb_r static int pmu_autopoll(int devs); void pmu_poll(void); static int pmu_reset_bus(void); -static int pmu_queue_request(struct adb_request *req); +static int pmu68k_queue_request(struct adb_request *req); static void pmu_start(void); static void send_byte(int x); @@ -298,7 +298,7 @@ pmu_send_request(struct adb_request *req req->reply_len = 1; } else req->reply_len = 0; - ret = pmu_queue_request(req); + ret = pmu68k_queue_request(req); break; case CUDA_PACKET: switch (req->data[1]) { @@ -311,7 +311,7 @@ pmu_send_request(struct adb_request *req req->reply[0] = CUDA_PACKET; req->reply[1] = 0; req->reply[2] = CUDA_GET_TIME; - ret = pmu_queue_request(req); + ret = pmu68k_queue_request(req); break; case CUDA_SET_TIME: if (req->nbytes != 6) @@ -324,7 +324,7 @@ pmu_send_request(struct adb_request *req req->reply[0] = CUDA_PACKET; req->reply[1] = 0; req->reply[2] = CUDA_SET_TIME; - ret = pmu_queue_request(req); + ret = pmu68k_queue_request(req); break; case CUDA_GET_PRAM: if (req->nbytes != 4) @@ -337,7 +337,7 @@ pmu_send_request(struct adb_request *req req->reply[0] = CUDA_PACKET; req->reply[1] = 0; req->reply[2] = CUDA_GET_PRAM; - ret = pmu_queue_request(req); + ret = pmu68k_queue_request(req); break; case CUDA_SET_PRAM: if (req->nbytes != 5) @@ -351,7 +351,7 @@ pmu_send_request(struct adb_request *req req->reply[0] = CUDA_PACKET; req->reply[1] = 0; req->reply[2] = CUDA_SET_PRAM; - ret = pmu_queue_request(req); + ret = pmu68k_queue_request(req); break; } break; @@ -365,7 +365,7 @@ pmu_send_request(struct adb_request *req req->nbytes += 2; req->reply_expected = 1; req->reply_len = 0; - ret = pmu_queue_request(req); + ret = pmu68k_queue_request(req); break; } if (ret) @@ -426,9 +426,9 @@ pmu_reset_bus(void) req.data[4] = 0; req.reply_len = 0; req.reply_expected = 1; - if (pmu_queue_request(&req) != 0) + if (pmu68k_queue_request(&req) != 0) { - printk(KERN_ERR "pmu_adb_reset_bus: pmu_queue_request failed\n"); + printk(KERN_ERR "pmu_adb_reset_bus: pmu68k_queue_request failed\n"); return -EIO; } while (!req.complete) @@ -474,11 +474,11 @@ pmu_request(struct adb_request *req, voi } else req->reply_len = 0; req->reply_expected = 0; - return pmu_queue_request(req); + return pmu68k_queue_request(req); } static int -pmu_queue_request(struct adb_request *req) +pmu68k_queue_request(struct adb_request *req) { unsigned long flags; int nsend; diff -puN include/asm-m68k/signal.h~git-viro-bird-m68k include/asm-m68k/signal.h --- devel/include/asm-m68k/signal.h~git-viro-bird-m68k 2006-05-19 16:01:55.000000000 -0700 +++ devel-akpm/include/asm-m68k/signal.h 2006-05-19 16:01:55.000000000 -0700 @@ -156,13 +156,13 @@ typedef struct sigaltstack { static inline void sigaddset(sigset_t *set, int _sig) { - __asm__("bfset %0{%1,#1}" : "=m" (*set) : "id" ((_sig - 1) ^ 31) + __asm__("bfset %0{%1,#1}" : "=o" (*set) : "id" ((_sig - 1) ^ 31) : "cc"); } static inline void sigdelset(sigset_t *set, int _sig) { - __asm__("bfclr %0{%1,#1}" : "=m"(*set) : "id"((_sig - 1) ^ 31) + __asm__("bfclr %0{%1,#1}" : "=o"(*set) : "id"((_sig - 1) ^ 31) : "cc"); } @@ -176,7 +176,7 @@ static inline int __gen_sigismember(sigs { int ret; __asm__("bfextu %1{%2,#1},%0" - : "=d"(ret) : "m"(*set), "id"((_sig-1) ^ 31)); + : "=d"(ret) : "o"(*set), "id"((_sig-1) ^ 31)); return ret; } _