- 23 Aug, 2004 40 commits
-
-
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>
-
Dave Boutcher authored
arch/ppc64/kernel/mf_proc.c uses a bad interface for moving along file position in a proc_write routine. This quit working altogether in 2.6.8. Patch to fix. And I did a quick scan of the kernel to see if anyone else was similarly broken...apparantly not :-) Fixes a broken update of f_pos in a proc file write routine. Signed-off-by: Dave Boutcher <sleddog@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
Firmware expects the size of the buffer that you hand it when you ask it for information about a hardware error to be of a very specific size, but different versions of firmware appearently expect different sizes; using the wrong size results in a painful, hard-to-debug crash in firmware. Benh provided a patch for this some months ago, but appreantly missed this code path. This patch sets up the log buffer size dynamically; it also fixes a bug with the return code not being handled correctly. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
The patch below implements the ability to query outstanding imalloc regions for a given virtual address range. (Imalloc is the allocator of virtual space for ioremap.) The patch extends im_get_area() to allow a region criterion of IM_REGION_SUPERSET. For a particular "superset" virtual address and size passed into im_get_area(), the function returns the first outstanding region that is contained within this superset region. The patch also changes iounmap_explicit() to allow for the unmapping of all regions that fit under a "superset". This ability is necessary for dynamic (runtime) removal of pci host bridges (PHBs). For a PHB removal, the platform specification (the RPA) requires that all of its children slots already be dynamically removed. Each of these slot-level removals has fractured the imalloc region assigned to the PHB at boot. At PHB removal time, it is necessary to iounmap() the remaining artifacts of the initial PHB region. Signed-off-by: John Rose <johnrose@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Stephen Rothwell authored
This patch adds the ability to use DVD-RAM drives to the iSeries virtual cdrom driver. This version adresses (hopefully) Jens comments on the previous one. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
Below patch reuses the big-endian bitops for the little endian ones, and moves the ext2_{set,clear}_bit_atomic functions to be truly atomic instead of lock based. This requires that the bitmaps passed to the ext2_* bitop functions are 8-byte aligned. I have been assured that they will be 512-byte or 1024-byte aligned, and sparc and ppc32 also impose an alignment requirement on the bitmap. Signed-off-by: Olof Johansson <olof@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
At present rtas_call() can be called before the kmalloc subsystem is initialized, and if RTAS reports a hardware error, the code tries to do a kmalloc to make a copy of the error report. This patch changes it so that we don't do the kmalloc in that situation. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Linas Vepstas authored
Signed-off-by: Linas Vepstas <linas@linas.org> Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Nathan Lynch authored
The current code does schedule_timeout(HZ) when waiting for a cpu to die, which is a bit coarse and tends to limit the "throughput" of my stress tests :) Change the HZ timeout to HZ/5, increase the number of tries to 25 so the overall wait time is similar. In practice, I've never seen the loop need more than two iterations. Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com> Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Olof Johansson authored
Minor cleanup: Use C99 initializers for the screen_info struct. Signed-off-by: Olof Johansson <olof@austin.ibm.com> Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
David Gibson authored
Tested, at least basically, on Power4 iSeries with shared processors, on Power4 pSeries and RS64 (non-SLB) iSeries machines. On pSeries SLB machines we "bolt" an SLB entry for the first segment of the vmalloc() area into the SLB, to reduce the SLB miss rate. This caused problems, so was disabled, on iSeries because the bolted entry was not restored properly on shared processor switch. This patch adds information about the bolted vmalloc segment to the lpar map, which should be restored on shared processor switch. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Hollis Blanchard authored
This is a console driver for IBM's p5 servers; please consider it for inclusion. I've addressed all the comments I've received so far. Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Srivatsa Vaddagiri authored
During some signal test, we found that v_regs pointer was not setup correctly. v_regs was made to point to itself, as a result of which the pointer was corrupted when vec registers were copied over. When the signal handler returned, restore_sigcontext tried derefering the invalid pointer and in the process killed the app with SIGSEGV. Signed-off-by: Srivatsa Vaddagiri <vatsa@in.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
Currently on pSeries systems the kernel will print out a hex dump of any error events reported by the platform at boot time. These can be rather large and are practically incomprehensible to humans. With this patch, the kernel will by default print a 1-line summary for each error reported with the severity, type, etc. printed as text strings. The old behaviour is still available by using the rtasmsgs=on kernel command line option. The patch also renames some RTAS-specific symbols to start with "RTAS_". Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
The EEH code currently can end up doing an extra pci_dev_put() in the case where we hot-unplug a card for which we are ignoring EEH errors (e.g. a graphics card). This patch fixes that problem by only maintaining a reference to the PCI device if we have entered any of its resource addresses into our address -> PCI device cache. This patch is based on an earlier patch by Linas Vepstas. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
Firmware can report errors at any time, and not atypically during boot. However, these reports were being discarded until th rtasd comes up, which occurs fairly late in the boot cycle. As a result, firmware errors during boot were being silently ignored. Signed-off-by: Linas Vepstas <linas@linas.org> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
David Gibson authored
Fairly trivial PPC64 cleanup. This patch makes the ppc64 INIT_THREAD #define use C99 initializers, which will make it less likely to get broken if we need to change thread_struct. Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
In the default_idle and dedicated_idle loops, there are some inner loops out of which we should break if the cpu is marked offline. Otherwise, it is possible for the cpu to get stuck and never actually go offline. shared_idle is unaffected. Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
When taking a cpu offline, once the cpu has been removed from cpu_online_map, it is not supposed to service any more interrupts. This presents a problem on ppc64 because we cannot truly disable the decrementer. There used to be cpu_is_offline() checks in several scheduler functions (e.g. rebalance_tick()) which papered over this issue, but these checks were removed recently. So with recent 2.6 kernels, an attempt to offline a cpu can result in a crash in find_busiest_group(). This patch prevents such crashes. Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-