- 03 Sep, 2004 23 commits
-
-
David Gibson authored
This has been given basic testing on Power4 pSeries and iSeries machines. At present, the SLB miss handler has to check the SLB slot it is about to use to ensure that it does not contain the SLBE for the current kernel stack - throwing out the SLBE for the kernel stack can trigger the "megabug": we have no SLBE for the stack, but we don't fault immediately because we have an ERAT entry for it. The ERAT entry is then lost due to a tlbie on another CPU during the unrecoverable section of the exception return path. This patch implements a different approach - with this patch SLB slot 2 always (well, nearly always) contains an SLBE for the stack. This slot is never cast out by the normal SLB miss path. On context switch, an SLBE for the new stack is pinned into this slot, unless the new stack is the the bolted segment. For iSeries we need a special workaround because there is no way of ensuring the stack SLBE is preserved an a shared processor switch. So, we still need to handle taking an SLB miss on the stack, in which case we must make sure it is loaded into slot 2, rather than using the normal round-robin. This approach shaves a few ns off the slb miss time (on pSeries), but more importantly makes it easier to experiment with different SLB castout aporoaches without worrying about reinstating the megabug. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Benjamin Herrenschmidt authored
... but a better solution should probably be found, that's saved_auxv in struct mm_struct is ... hrm... disgusting at least ;) So the problem is that we currently do unsigned long saved_auxv[40]; That is we assume that all archs will have an AUXV entry of no more than 2 unsigned longs and we'll have no more than 20 entries in the table. Unfortunately, this is wrong. PPC/PPC64 adds 5 platform entries. then we add 14 in the common code, and then we have if (k_platform) { NEW_AUX_ENT(AT_PLATFORM, (elf_addr_t)(unsigned long)u_platform); } if (bprm->interp_flags & BINPRM_FLAGS_EXECFD) { NEW_AUX_ENT(AT_EXECFD, (elf_addr_t) bprm->interp_data); } which may add a 20th entry... which means we are already out of room for the terminating AT_NULL entry... bad bad bad. Now I'm adding AT_SYSINFO_EHDR to ppc/ppc64 and it breaks all the time. The quick fix is to bump the number of entries in struct mm_struct to 42, though that's worth a big BOLD comment in binfmt_elf in case anybody adds a new entry in there. (Patch below). I wonder if we shouldn't add a ARCH_MAX_AUXV_ENTRIES macro to the asm-arch/elf.h though to get the max amount of entry the arch may add to the normal count, and have the mm struct array use that plus the number of "normal" entries... This patch increase the max amount of auxv entries in struct mm_struct to 42 so that ppc & ppc64 don't get a chance to blow the array up. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
drivers/scsi/ipr.c: In function `ipr_worker_thread': drivers/scsi/ipr.c:1825: wrong type argument to unary exclamation mark drivers/scsi/ipr.c: In function `ipr_read_dump': drivers/scsi/ipr.c:2426: wrong type argument to unary exclamation mark Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Brian King <brking@us.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
John Stultz authored
I've been hunting down a bug affecting IBM x440/x445 systems where the floppy driver would get spurious interrupts and would not initialize properly. After digging James Cleverdon and Bill Irwin pointed out that target_cpus() is routing the interrupts to the clustered apic broadcast mask using destFixed deliver mode. This was causing multiple interrupts to show up, breaking the floppy init code. This fix simply changes the delivery mode to dest_LowestPrio and initially routes interrupts to the first cpu to resolve this issue. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jason Davis authored
Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Olaf Hering authored
An attempt to fix the random poking in legacy io space... ask for permissions before poking at io ports. this affects detect_and_report_winbond() and detect_and_report_smsc(). Its unclear what port number is returned in show_parconfig_winbond(), so just request the region as well and free the probing region. Signed-off-by: Olaf Hering <olh@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
Page allocation failures are expected when add_to_swap() tries to allocate radix-tree nodes without PF_MEMALLOC. Kill the __alloc_pages() warnings. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Takashi Iwai authored
sound/core/pcm_native.c was assuming that all architectures implement io_remap_page_range() in the same way. They don't, so the sparc64 build broke. mmap callback is added to PCM ops. The driver can implement its own mmap method. Also, mmapping of the status and control records is available only on known coherent architectures now. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
Fix the build with CONFIG_SHMEM=n Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Andrew Morton authored
I mucked this up. Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
bk://kernel.bkbits.net/davem/net-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
bk://kernel.bkbits.net/davem/sparc-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Kirill Korotaev authored
Dmitry Torokhov triggered a problem in the new pidhash macros: These do_each_task_pid()/while_each_task_pid() do loop forever if you use a 'continue' inside them. The end of the loop has to be inside the "while()" statement, so as to not make "continue" jump over it.
-
http://lia64.bkbits.net/linux-ia64-release-2.6.9Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Tony Luck authored
into agluck-lia64.sc.intel.com:/data/home/aegl/BK/linux-ia64-release-2.6.9
-
Ian Wienand authored
Patch developed by Ian Wienand under advice from Bill Irwin. Signed-off-by: William Irwin <wli@holomorphy.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
-
- 02 Sep, 2004 17 commits
-
-
Patrick McHardy authored
There is a possible deadlock condition with conntrack/nat-helpers: CPU1: conntrack-helper:help: lock(private_lock) ip_conntrack_expect_related: write_lock(ip_conntrack_lock) CPU2: nat-core:do_bindings: read_lock(ip_conntrack_lock) nat-helper:help: lock(private_lock) The lock in the nat-helper is unneccessary because the expectation is never changed and is protected by ip_conntrack_lock. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Patrick McHardy authored
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Harald Welte <laforge@netfilter.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
-
David S. Miller authored
into nuts.davemloft.net:/disk1/BK/sparc-2.6
-
Andrew Morton authored
The NFS symlink code cleanup causes older gcc's to barf. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Trond Myklebust authored
Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Trond Myklebust authored
NFSv2: Fix another bad filehandle cast. NFSv2: The symlink operation does not return a valid filehandle. Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Trond Myklebust authored
- Now that the VFS no longer uses it, we don't need to cache the symlink string length. - Make ->readlink() take page offset+length arguments - Fix up page under/overflow checking on the readlink XDR code so that it matches read/write. Signed-off-by: Trond Myklebust <trond.myklebust@fys.uio.no> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Linus Torvalds authored
Thanks to Davem for noticing. We probably should _not_ trust the coverity reports that much. Cset exclude: davej@redhat.com[torvalds]|ChangeSet|20040902213928|62770 Cset exclude: davej@redhat.com[torvalds]|ChangeSet|20040902213829|63705
-
David S. Miller authored
into kernel.bkbits.net:/home/davem/net-2.6
-
Herbert Xu authored
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Peter Jones authored
Needs a SILO update too which is forthcoming. Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Ben Collins <bcollins@debian.org> Signed-off-by: David S. Miller <davem@davemloft.net>
-
Kirill Korotaev authored
This patch fixes strange and obscure pid implementation in current kernels: - it removes calling of put_task_struct() from detach_pid() under tasklist_lock. This allows to use blocking calls in security_task_free() hooks (in __put_task_struct()). - it saves some space = 5*5 ints = 100 bytes in task_struct - it's smaller and tidy, more straigthforward and doesn't use any knowledge about pids using and assignment. - it removes pid_links and pid_struct doesn't hold reference counters on task_struct. instead, new pid_structs and linked altogether and only one of them is inserted in hash_list. Signed-off-by: Kirill Korotaev (kksx@mail.ru) Signed-off-by: William Irwin <wli@holomorphy.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Chris Wedgwood authored
i386 hardware can (and does) see spurious interrupts from time to tome. Ideally I would like the printk removed completely but this is probably good enough for now. Signed-off-by: Chris Wedgwood <cw@f00f.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dave Jones authored
Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dave Jones authored
It can return NULL, so check for it. Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dave Jones authored
Spotted with the source checker from Coverity.com. Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-