- 23 Aug, 2004 40 commits
-
-
Andi Kleen authored
Not strictly needed, since we're forcing `inline' to always_inline, but it's good for documentation purposes - This function needs the always_inline otherwise you get a link error when the compile time test is not optimized away. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andi Kleen authored
Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andi Kleen authored
Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andi Kleen authored
Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andi Kleen authored
Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andi Kleen authored
Trivial gcc-3.5 build fixes. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Shai Fultheim authored
Use the percpu infrastructure rather than open-coded array[NR_CPUS]. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Shai Fultheim authored
Use the percpu infrastructure rather than open-coded array[NR_CPUS]. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Shai Fultheim authored
Use the percpu infrastructure rather than open-coded array[NR_CPUS]. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Christoph Hellwig authored
The generation counters were removed from the idr code. Update idr.c comments, now uses doc-book style API documentation. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Takashi Iwai authored
The patch adds the check of return value from resquest_region() to avoid the confliction of resource management with ALSA intel8x0 driver. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Manfred Spraul authored
Attached is a cleanup of the main loops in sys_msgrcv and sys_msgsnd, based on ipc_lock_by_ptr(). Most backward gotos are gone, instead normal "for(;;)" loops until a suitable message is found. Description: - General cleanup of sys_msgrcv and sys_msgsnd: the function were too convoluted. - Enable lockless receive, update comments. - Use ipc_getref for sys_msgsnd(), it's better than rechecking that the msqid is still valid. Signed-Off-By: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Manfred Spraul authored
Independent from the other patches: undo operations should not result in out of range semaphore values. The test for newval > SEMVMX is missing. The attached patch adds the test and a comment. Signed-Off-By: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Manfred Spraul authored
The attached patch removes sem_revalidate and replaces it with ipc_rcu_getref() calls followed by ipc_lock_by_ptr(). Signed-Off-By: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Manfred Spraul authored
The lifetime of the ipc objects (sem array, msg queue, shm mapping) is controlled by kern_ipc_perms->lock - a spinlock. There is no simple way to reacquire this spinlock after it was dropped to schedule()/kmalloc/copy_{to,from}_user/whatever. The attached patch adds a reference count as a preparation to get rid of sem_revalidate(). Signed-Off-By: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Kevin Corry authored
Keep track of allocated minor numbers with an IDR instead of a bit-set. Signed-off-by: Kevin Corry <kevcorry@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
Fix locking error identified by the Stanford locking checker. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Davide Libenzi authored
The ptrace single step mode should not use the SYSGOOD bit and should not report SIGTRAP|0x80 to the ptrace parent. The following patch add an explicit check and to not add 0x80 in this is a singlestep trap. Signed-off-by: Davide Libenzi <davidel@xmailserver.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
If an inode is backed by a memory-backed backing_dev, and it is not a blockdev inode, we can skip the entire superblock duwing writeback scanning. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Neil Brown authored
Make sure the right errno is return from a readahead error in multipath Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Brian King authored
Fixes blk_queue_resize_tags to properly handle allocation failures. Currently, if a memory allocation failure occurs during blk_queue_resize_tags, the tag map ends up getting freed, which should not happen. The old tag map should be preserved and only the resize should fail. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Brian King authored
init_tag_map should not initialize the busy_list, refcnt, or busy fields in the tag map since blk_queue_resize_tags can call it while requests are active. Patch moves this initialization into blk_queue_init_tags. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Brian King authored
This is a resend of three ll_rw_blk patches related to tagged queuing. Currently blk_queue_free_tags cannot be called with ops outstanding. The scsi_tcq API defined to LLD scsi drivers allows for scsi_deactivate_tcq to be called (which calls blk_queue_free_tags) with ops outstanding. Change blk_queue_free_tags to no longer free the tags, but rather just disable tagged queuing and also modify blk_queue_init_tags to handle re-enabling tagged queuing after it has been disabled. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
Mount with "mount -o barrier=1" to enable barriers. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Chris Mason authored
Add reiserfs support for flush barriers, mount with -o barrier=flush to enable them. Barriers are triggered on fsync and for log commits. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Chris Mason authored
In order for filesystems to detect asynchronous ordered write failures for buffers sent via submit_bh, they need a bit they can test for in the buffer head. This adds BH_Eopnotsupp and the related buffer operations end_buffer_write_sync is changed to avoid a printk for BH_Eoptnotsupp related failures, since the FS is responsible for a retry. sync_dirty_buffer is changed to test for BH_Eopnotsupp and return -EOPNOTSUPP to the caller Some of this came from Jens Axboe Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
Make sync_dirty_buffer() return the result of its syncing. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
md bits Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
dm bits Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
scsi bits Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
ide bits Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
IDE disk barrier core. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Davide Libenzi authored
This patch permits a ptrace process on x86 to "see" the instruction following the INT #80h op. This has been tested on 2.6.6 using the appended test source. Running over this: 80485a9: b8 14 00 00 00 mov $0x14,%eax 80485ae: cd 80 int $0x80 80485b0: 89 45 ec mov %eax,0xffffffec(%ebp) 80485b3: eb f4 jmp 80485a9 <main+0x85> it produces: waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485a9 waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485ae waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485b0 waiting ... done: pid=12387 status=1407 sig=5 EIP=0x080485b3 (Andi says: "I think this patch is a bad idea. The ptrace handling is traditionally fragile (I remember when merging a rather simple patch from IBM for DR allocation long ago into the suse it broke several debuggers). If you really want to do that wait for 2.7.") test-program.c: #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <unistd.h> #include <errno.h> #include <sys/types.h> #include <sys/ptrace.h> #include <sys/wait.h> #include <linux/user.h> #include <linux/unistd.h> int main(int ac, char **av) { int i, status, res; long start, end; pid_t cpid, pid; struct user_regs_struct ur; struct sigaction sa; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sa.sa_handler = SIG_DFL; sigaction(SIGCHLD, &sa, NULL); printf("nargs=%d\n", ac); if (ac == 1) goto tracer; printf("arg=%s\n", av[1]); loop: __asm__ volatile ("int $0x80" : "=a" (res) : "0" (__NR_getpid)); goto loop; endloop: exit(0); tracer: if ((cpid = fork()) != 0) goto parent; printf("child=%d\n", getpid()); ptrace(PTRACE_TRACEME, 0, NULL, NULL); execl(av[0], av[0], "child", NULL); exit(0); parent: start = (long) &&loop; end = (long) &&endloop; printf("pchild=%d\n", cpid); for (;;) { pid = wait(&status); if (pid != cpid) continue; res = WSTOPSIG(status); if (ptrace(PTRACE_GETREGS, pid, NULL, &ur)) { printf("[%d] error: ptrace(PTRACE_GETREGS, %d)\n", pid, pid); return 1; } if (ptrace(PTRACE_SINGLESTEP, pid, NULL, res != SIGTRAP ? res: 0)) { perror("ptrace(PTRACE_SINGLESTEP)"); return 1; } if (ur.eip >= start && ur.eip <= end) break; } for (i = 0; i < 15; i++) { printf("waiting ...\n"); pid = wait(&status); printf("done: pid=%d status=%d\n", pid, status); if (pid != cpid) continue; res = WSTOPSIG(status); printf("sig=%d\n", res); if (ptrace(PTRACE_GETREGS, pid, NULL, &ur)) { printf("[%d] error: ptrace(PTRACE_GETREGS, %d)\n", pid, pid); return 1; } printf("EIP=0x%08x\n", ur.eip); if (ptrace(PTRACE_SINGLESTEP, pid, NULL, res != SIGTRAP ? res: 0)) { perror("ptrace(PTRACE_SINGLESTEP)"); return 1; } } if (ptrace(PTRACE_CONT, cpid, NULL, SIGKILL)) { perror("ptrace(PTRACE_SINGLESTEP)"); return 1; } return 0; } Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Keith Owens authored
This teaches the i386 oops dumper to dump opcodes preceding and after the offending EIP. Supporting code against ksymoops has been tested and produces output like the below. Support for this was added to ksymoops-2.4.9. Note that ksymoops will guarantee that the disassembly after the <eip> value is always in sync - if the disassembly from the start of the Code: line does not sync up with the EIP address ksymoops will perform the resync. Warning (merge_maps): no symbols in merged map Mar 18 23:47:36 vmm kernel: kernel BUG at fs/open.c:802! Mar 18 23:47:36 vmm kernel: invalid operand: 0000 [#1] Mar 18 23:47:36 vmm kernel: CPU: 0 Mar 18 23:47:36 vmm kernel: EIP: 0060:[<c014fedf>] VLI Not tainted Using defaults from ksymoops -t elf32-i386 -a i386 Mar 18 23:47:36 vmm kernel: EFLAGS: 00010246 Mar 18 23:47:36 vmm kernel: eax: ccdfb900 ebx: 4001020d ecx: 00000000 edx: 0000007b Mar 18 23:47:36 vmm kernel: esi: 00000000 edi: bfffdd70 ebp: ccdfdfbc esp: ccdfdfb0 Mar 18 23:47:36 vmm kernel: ds: 007b es: 007b ss: 0068 Mar 18 23:47:36 vmm kernel: Stack: 4001020d 00000000 bfffdd70 ccdfc000 c0109213 4001020d 00000000 00000003 Mar 18 23:47:36 vmm kernel: 00000000 bfffdd70 bfffdc88 00000005 0000007b 0000007b 00000005 4000ef94 Mar 18 23:47:36 vmm kernel: 00000073 00000206 bfffdbd8 0000007b Mar 18 23:47:36 vmm kernel: Call Trace: Mar 18 23:47:36 vmm kernel: [<c0109213>] syscall_call+0x7/0xb Mar 18 23:47:36 vmm kernel: Code: 14 98 f0 81 41 04 00 00 00 01 5b 89 ec 5d c3 90 b8 00 e0 ff ff 21 e0 55 89 e5 57 56 53 8b 00 81 b8 e4 01 00 00 0f 27 00 00 75 08 <0f> 0b 22 03 85 18 2f c0 8b 45 08 50 e8 30 d4 00 00 89 c7 83 c4 >>EIP; c014fedf No symbols available <===== Trace; c0109213 No symbols available This architecture has variable length instructions, decoding before eip is unreliable, take these instructions with a pinch of salt. Code; c014feb4 No symbols available 00000000 <_EIP>: Code; c014feb4 No symbols available 0: 14 98 adc $0x98,%al Code; c014feb6 No symbols available 2: f0 81 41 04 00 00 00 lock addl $0x1000000,0x4(%ecx) Code; c014febd No symbols available 9: 01 Code; c014febe No symbols available a: 5b pop %ebx Code; c014febf No symbols available b: 89 ec mov %ebp,%esp Code; c014fec1 No symbols available d: 5d pop %ebp Code; c014fec2 No symbols available e: c3 ret Code; c014fec3 No symbols available f: 90 nop Code; c014fec4 No symbols available 10: b8 00 e0 ff ff mov $0xffffe000,%eax Code; c014fec9 No symbols available 15: 21 e0 and %esp,%eax Code; c014fecb No symbols available 17: 55 push %ebp Code; c014fecc No symbols available 18: 89 e5 mov %esp,%ebp Code; c014fece No symbols available 1a: 57 push %edi Code; c014fecf No symbols available 1b: 56 push %esi Code; c014fed0 No symbols available 1c: 53 push %ebx Code; c014fed1 No symbols available 1d: 8b 00 mov (%eax),%eax Code; c014fed3 No symbols available 1f: 81 b8 e4 01 00 00 0f cmpl $0x270f,0x1e4(%eax) Code; c014feda No symbols available 26: 27 00 00 Code; c014fedd No symbols available 29: 75 08 jne 33 <_EIP+0x33> c014fee7 No symbols available This decode from eip onwards should be reliable Code; c014fedf No symbols available 00000000 <_EIP>: Code; c014fedf No symbols available <===== 0: 0f 0b ud2a <===== Code; c014fee1 No symbols available 2: 22 03 and (%ebx),%al Code; c014fee3 No symbols available 4: 85 18 test %ebx,(%eax) Code; c014fee5 No symbols available 6: 2f das Code; c014fee6 No symbols available 7: c0 8b 45 08 50 e8 30 rorb $0x30,0xe8500845(%ebx) Code; c014feed No symbols available e: d4 00 aam $0x0 Code; c014feef No symbols available 10: 00 .byte 0x0 Code; c014fef0 No symbols available 11: 89 c7 mov %eax,%edi Code; c014fef2 No symbols available 13: 83 .byte 0x83 Code; c014fef3 No symbols available 14: c4 .byte 0xc4 Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrey Panin authored
CC arch/i386/kernel/cpu/intel.o In file included from arch/i386/kernel/cpu/intel.c:19: include/asm-i386/mach-visws/mach_apic.h: In function `cpu_present_to_apicid': include/asm-i386/mach-visws/mach_apic.h:67: error: `BAD_APICID' undeclared (first use in this function) include/asm-i386/mach-visws/mach_apic.h:67: error: (Each undeclared identifier is reported only once include/asm-i386/mach-visws/mach_apic.h:67: error: for each function it appears in.) Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Santiago Leon authored
This patch adds a memory barrier to ensure synchronization with the hypervisor (and avoid a panic when the hypervisor is halfway through writing to the descriptor). It also removes an unnecessary check that is flawed anyway because the value can change between the atomic_inc() and the assert. Signed-off-by: Santiago Leon <santil@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Santiago Leon authored
This patch checks for the LongBusy return code from the hypervisor, and retries the operation (which is what the hypervisor expects the driver to do). Please apply. Signed-off-by: Santiago Leon <santil@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dave Hansen authored
This patch fixes a race condition that would panic the kernel when replenishing a buffer pool. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Santiago Leon authored
This and the following three patches contain bug fixes found in the stabilization of SLES9. This patch adds a call to MODULE_VERSION and changes the MODULE_AUTHOR call to me (obviously with Dave Larson's permission). It also increments the version number to keep track of the bug fixes. Please apply. Signed-off-by: Santiago Leon <santil@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Ryan S. Arnold authored
Here are a set of HVCS (drivers/char/hvcs.c) fixes that were suggested by Jeff Garzik on July 29th in his review of this driver as well as some other fixes for problems I found while reviewing the driver. These are all relatively minor, but necessary. - Cleaned up curly braces on single line conditional blocks. - Replaced debug memset(...,0x3F,...) with memset(...,0x00,...). - Removed explicit '= 0' after static int declarations since these default to zero. - Removed list_for_each_safe() instances and replaced with list_for_each_entry() which cut down on amt of code. The 'safe' version is un-needed now that the driver is using spinlocks. - Changed spin_lock_irqsave() to spin_lock() when locking hvcs_structs_lock and hvcs_pi_lock since these are not touched in an int handler. - changed spin_lock_irqsave() to spin_lock() in interrupt handler. - Initialized hvcs_structs_lock and hvcs_pi_lock to SPIN_LOCK_UNLOCKED at declaration tiem rather than in hvcs_module_init(). - Added spin_lock around list_del() in destroy_hvcs_struct() to protect the list traversal from deletion. The original omission was an oversight. - Removed '= NULL' from pointer declarations since they are initialized NULL by default. - Removed wmb() instance from hvcs_try_write(). They probably aren't needed with locking in place. - Added check and cleanup for hvcs_pi_buff = kmalloc() in hvcs_module_init(). - Exposed hvcs_struct.index via a sysfs attribute so that the coupling between /dev/hvcs* and a vty-server can be systematically determined. - Moved kobject_put() in hvcs_open() outside of the spin_unlock_irqrestore(). - In hvcs_probe() changed kmalloc(sizeof(*hvcsd),...) to kmalloc(sizeof(struct hvcs_struct)) because hvcsd references a NULL pointer at the time of kmalloc. - Incremented the HVCS_DRIVER_VERSION to 1.3.1 arch/ppc64/kernel/hvcserver.c: - Changed function documentation of EXPORTed functions to comply with proper kernel-doc documentation style. - Changed 'unsigned int' types to 'uint32_t' to comply with how unit addresses and partition IDs are handled in other arch/ppc64 vterm code. - Cleaned up curly braces on single line conditional blocks. include/asm-ppc64/hvcserver.h: - Added kernel-doc style documentation for hvcs_partner_info struct. - changed 'unsigned int' types to 'uint32_t' to comply with how unit addresses and partition IDs are handled in other arch/ppc64 vterm code. Signed-off-by: Ryan S. Arnold <rsa@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-