From: NIIBE Y. <gn...@m1...> - 2002-04-10 11:09:30
|
Changes for traps.c:show_task: Paul, I think that we should output the information to fit in 80-column. The stack is kernel space. Also, we need to correctly handle kernel module, current implementation is simply wrong. I leave the kernel module thing now. Changes for semaphore.h: it's just include errno.h Changes from mainline 2.5.8-pre3. 2002-04-10 NIIBE Yutaka <gn...@m1...> * Makefile: Version 2.5.8-pre3. * AGAINST-2.5.8-pre3: New file. * AGAINST-2.5.8-pre1: Removed. * include/asm-sh/unistd.h: Incorporate changes in 2.5.8-pre2 -> pre3. * drivers/block/rd.c: Likewise. * mm/memory.c: Incorporate changes in 2.5.8-pre1 -> pre2. * fs/nfs/inode.c: Incorporate changes in 2.5.8-pre1 -> pre2. 2002-04-07 NIIBE Yutaka <gn...@m1...> * arch/sh/kernel/traps.c (show_task): Don't use __get_user, it's kernel space. Assume 80-column. 2002-04-06 NIIBE Yutaka <gn...@m1...> * arch/sh/kernel/semaphore.c: Inlcude <linux/errno.h>. Index: Makefile =================================================================== RCS file: /cvsroot/linuxsh/linux/Makefile,v retrieving revision 1.14 diff -u -3 -p -r1.14 Makefile --- Makefile 4 Apr 2002 09:14:42 -0000 1.14 +++ Makefile 10 Apr 2002 11:03:26 -0000 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 5 SUBLEVEL = 8 -EXTRAVERSION =-pre1-sh +EXTRAVERSION =-pre3-sh KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) Index: TODO =================================================================== RCS file: /cvsroot/linuxsh/linux/TODO,v retrieving revision 1.1.1.1 diff -u -3 -p -r1.1.1.1 TODO --- TODO 15 Oct 2001 20:44:31 -0000 1.1.1.1 +++ TODO 10 Apr 2002 11:03:26 -0000 @@ -1,8 +1,3 @@ -* Support zImage with big-endian. - -* include/asm-sh/hw_irq.h - Kernel profiling - * arch/sh/kernel/setup.c (setup_arch): request_resource @@ -82,3 +77,9 @@ DONE: * reboot SR.BL=1 and address error + +* Support zImage with big-endian. + +* include/asm-sh/hw_irq.h + Kernel profiling + Index: arch/sh/kernel/semaphore.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/semaphore.c,v retrieving revision 1.1 diff -u -3 -p -r1.1 semaphore.c --- arch/sh/kernel/semaphore.c 15 Oct 2001 20:44:51 -0000 1.1 +++ arch/sh/kernel/semaphore.c 10 Apr 2002 11:03:26 -0000 @@ -7,6 +7,7 @@ * specific changes in <asm/semaphore-helper.h> */ +#include <linux/errno.h> #include <linux/sched.h> #include <linux/wait.h> #include <asm/semaphore.h> Index: arch/sh/kernel/traps.c =================================================================== RCS file: /cvsroot/linuxsh/linux/arch/sh/kernel/traps.c,v retrieving revision 1.4 diff -u -3 -p -r1.4 traps.c --- arch/sh/kernel/traps.c 1 Mar 2002 07:47:11 -0000 1.4 +++ arch/sh/kernel/traps.c 10 Apr 2002 11:03:26 -0000 @@ -585,18 +585,16 @@ void show_task(unsigned long *sp) printk("\nCall trace: "); while (((long)stack & (THREAD_SIZE - 1))) { - if (__get_user(addr, stack)) { - printk("Failing address 0x%lx\n", *stack); - break; - } - stack++; - + addr = *stack++; if (((addr >= (unsigned long)&_text) && (addr <= (unsigned long)&_etext)) || ((addr >= module_start) && (addr <= module_end))) { - if (i && ((i % 8) == 0)) + /* + * For 80-columns display, 6 entry is maximum. + * NOTE: '[<8c00abcd>] ' consumes 13 columns . + */ + if (i && ((i % 6) == 0)) printk("\n "); - printk("[<%08lx>] ", addr); i++; } Index: drivers/block/rd.c =================================================================== RCS file: /cvsroot/linuxsh/linux/drivers/block/rd.c,v retrieving revision 1.6 diff -u -3 -p -r1.6 rd.c --- drivers/block/rd.c 4 Apr 2002 09:03:54 -0000 1.6 +++ drivers/block/rd.c 10 Apr 2002 11:03:26 -0000 @@ -300,19 +300,13 @@ static int rd_ioctl(struct inode *inode, } up(&inode->i_bdev->bd_sem); break; - case BLKGETSIZE: /* Return device size */ - if (!arg) - break; - error = put_user(rd_kbsize[minor] << 1, (unsigned long *) arg); - break; + case BLKGETSIZE: case BLKGETSIZE64: - error = put_user((u64)rd_kbsize[minor]<<10, (u64*)arg); - break; case BLKROSET: case BLKROGET: case BLKSSZGET: error = blk_ioctl(inode->i_bdev, cmd, arg); - }; + } out: return error; } @@ -419,11 +413,10 @@ static void __exit rd_cleanup (void) /* This is the registration and initialization section of the RAM disk driver */ static int __init rd_init (void) { - int i; + int i; if (rd_blocksize > PAGE_SIZE || rd_blocksize < 512 || - (rd_blocksize & (rd_blocksize-1))) - { + (rd_blocksize & (rd_blocksize-1))) { printk("RAMDISK: wrong blocksize %d, reverting to defaults\n", rd_blocksize); rd_blocksize = BLOCK_SIZE; @@ -450,7 +443,8 @@ static int __init rd_init (void) &rd_bd_op, NULL); for (i = 0; i < NUM_RAMDISKS; i++) - register_disk(NULL, mk_kdev(MAJOR_NR,i), 1, &rd_bd_op, rd_size<<1); + register_disk(NULL, mk_kdev(MAJOR_NR,i), 1, &rd_bd_op, + rd_size<<1); #ifdef CONFIG_BLK_DEV_INITRD /* We ought to separate initrd operations here */ @@ -459,10 +453,10 @@ static int __init rd_init (void) INITRD_MINOR, S_IFBLK | S_IRUSR, &rd_bd_op, NULL); #endif - blksize_size[MAJOR_NR] = rd_blocksizes; /* Avoid set_blocksize() check */ - blk_size[MAJOR_NR] = rd_kbsize; /* Size of the RAM disk in kB */ + blksize_size[MAJOR_NR] = rd_blocksizes; /* Avoid set_blocksize() check */ + blk_size[MAJOR_NR] = rd_kbsize; /* Size of the RAM disk in kB */ - /* rd_size is given in kB */ + /* rd_size is given in kB */ printk("RAMDISK driver initialized: " "%d RAM disks of %dK size %d blocksize\n", NUM_RAMDISKS, rd_size, rd_blocksize); Index: fs/nfs/inode.c =================================================================== RCS file: /cvsroot/linuxsh/linux/fs/nfs/inode.c,v retrieving revision 1.3 diff -u -3 -p -r1.3 inode.c --- fs/nfs/inode.c 5 Apr 2002 04:52:10 -0000 1.3 +++ fs/nfs/inode.c 10 Apr 2002 11:03:26 -0000 @@ -72,7 +72,9 @@ static struct super_operations nfs_sops /* * RPC cruft for NFS */ -struct rpc_stat nfs_rpcstat = { &nfs_program }; +struct rpc_stat nfs_rpcstat = { + program: &nfs_program +}; static struct rpc_version * nfs_version[] = { NULL, NULL, @@ -83,11 +85,11 @@ static struct rpc_version * nfs_version[ }; struct rpc_program nfs_program = { - "nfs", - NFS_PROGRAM, - sizeof(nfs_version) / sizeof(nfs_version[0]), - nfs_version, - &nfs_rpcstat, + name: "nfs", + number: NFS_PROGRAM, + nrvers: sizeof(nfs_version) / sizeof(nfs_version[0]), + version: nfs_version, + stats: &nfs_rpcstat, }; static inline unsigned long @@ -635,7 +637,10 @@ nfs_fhget(struct dentry *dentry, struct static struct inode * __nfs_fhget(struct super_block *sb, struct nfs_fh *fh, struct nfs_fattr *fattr) { - struct nfs_find_desc desc = { fh, fattr }; + struct nfs_find_desc desc = { + fh: fh, + fattr: fattr + }; struct inode *inode = NULL; unsigned long ino; @@ -730,6 +735,8 @@ nfs_notify_change(struct dentry *dentry, struct nfs_fattr fattr; int error; + lock_kernel(); + /* * Make sure the inode is up-to-date. */ @@ -778,6 +785,7 @@ printk("nfs_notify_change: revalidate fa NFS_CACHEINV(inode); error = nfs_refresh_inode(inode, &fattr); out: + unlock_kernel(); return error; } Index: include/asm-sh/unistd.h =================================================================== RCS file: /cvsroot/linuxsh/linux/include/asm-sh/unistd.h,v retrieving revision 1.4 diff -u -3 -p -r1.4 unistd.h --- include/asm-sh/unistd.h 22 Mar 2002 10:52:09 -0000 1.4 +++ include/asm-sh/unistd.h 10 Apr 2002 11:03:26 -0000 @@ -382,4 +382,12 @@ static __inline__ pid_t wait(int * wait_ } #endif +/* + * "Conditional" syscalls + * + * What we want is __attribute__((weak,alias("sys_ni_syscall"))), + * but it doesn't work on all toolchains, so we just do it by hand + */ +#define cond_syscall(x) asm(".weak\t" #x "\n\t.set\t" #x ",sys_ni_syscall"); + #endif /* __ASM_SH_UNISTD_H */ Index: mm/memory.c =================================================================== RCS file: /cvsroot/linuxsh/linux/mm/memory.c,v retrieving revision 1.9 diff -u -3 -p -r1.9 memory.c --- mm/memory.c 22 Mar 2002 10:52:09 -0000 1.9 +++ mm/memory.c 10 Apr 2002 11:03:26 -0000 @@ -48,6 +48,7 @@ #include <asm/pgalloc.h> #include <asm/uaccess.h> #include <asm/tlb.h> +#include <asm/tlbflush.h> unsigned long max_mapnr; unsigned long num_physpages; -- |