1. 06 Nov, 2006 4 commits
    • Gautham R Shenoy's avatar
      [PATCH] Fix the spurious unlock_cpu_hotplug false warnings · 4b96b1a1
      Gautham R Shenoy authored
      Cpu-hotplug locking has a minor race case caused because of setting the
      variable "recursive" to NULL *after* releasing the cpu_bitmask_lock in the
      function unlock_cpu_hotplug,instead of doing so before releasing the
      cpu_bitmask_lock.
      
      This was the cause of most of the recent false spurious lock_cpu_unlock
      warnings.
      
      This should fix the problem reported by Martin Lorenz reported in
      http://lkml.org/lkml/2006/10/29/127.
      
      Thanks to Srinivasa DS for pointing it out.
      Signed-off-by: default avatarGautham R Shenoy <ego@in.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      4b96b1a1
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · d1ed6a3e
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
        [NETLABEL]: Fix build failure.
        [IPV6]: Give sit driver an appropriate module alias.
        [IPV6]: Add ndisc_netdev_notifier unregister.
        [NET]: __alloc_pages() failures reported due to fragmentation
        [PKTGEN]: TCI endianness fixes
        [TG3]: Fix 2nd ifup failure on 5752M.
        [NETFILTER] bug: skb->protocol is already net-endian
        [NETFILTER] bug: nfulnl_msg_config_mode ->copy_range is 32bit
        [NETFILTER] bug: NFULA_CFG_QTHRESH uses 32bit
        [IPV6]: Fix ECN bug on big-endian
        [IPX]: Annotate and fix IPX checksum
        [IPX]: Trivial parts of endianness annotations
      d1ed6a3e
    • David S. Miller's avatar
      [SPARC]: Fix robust futex syscalls and wire up migrate_pages. · 59359ff8
      David S. Miller authored
      When I added the entries for the robust futex syscall entries, I
      forgot to bump NR_SYSCALLS.  The current situation is error-prone
      because NR_SYSCALLS lives in entry.S where the system call limit
      checks are enforced.  Move the definition to asm/unistd.h in order to
      make this mistake much more difficult to make.
      
      And wire up sys_migrate_pages since the powerpc folks implemented the
      compat wrapper for us.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      59359ff8
    • Paul Moore's avatar
      [NETLABEL]: Fix build failure. · 38c94377
      Paul Moore authored
      > the build with the attached .config failed, make ends with:
      > ...
      > : undefined reference to `cipso_v4_sock_getattr'
      > net/built-in.o: In function `netlbl_socket_getattr':
      
       ...
      
      It looks like I was stupid and made NetLabel depend on CONFIG_NET and not
      CONFIG_INET, the patch below should fix this by making NetLabel depend on
      CONFIG_INET and CONFIG_SECURITY.  Please review and apply for 2.6.19.
      Signed-off-by: default avatarPaul Moore <paul.moore@hp.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      38c94377
  2. 05 Nov, 2006 11 commits
  3. 04 Nov, 2006 5 commits
  4. 03 Nov, 2006 20 commits
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 · a0d2db26
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6:
        PCI: Let PCI_MULTITHREAD_PROBE depend on BROKEN
        PCI: Revert "PCI: i386/x86_84: disable PCI resource decode on device disable"
      a0d2db26
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 · ced3985f
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6:
        USB: use MII hooks only if CONFIG_MII is enabled
        USB Storage: unusual_devs.h entry for Sony Ericsson P990i
        USB: xpad: additional USB id's added
        USB: fix compiler issues with newer gcc versions
        USB: HID: add blacklist AIRcable USB, little beautification
        USB: usblp: fix system suspend for some systems
        USB: failure in usblp's error path
        usbtouchscreen: use endpoint address from endpoint descriptor
        USB: sierra: Fix id for Sierra Wireless MC8755 in new table
        USB: new VID/PID-combos for cp2101
        hid-core: big-endian fix fix
        USB: usb-storage: Unusual_dev update
        USB: add another sierra wireless device id
      ced3985f
    • Andreas Gruenbacher's avatar
      [PATCH] Fix user.* xattr permission check for sticky dirs · f1f2d871
      Andreas Gruenbacher authored
      The user.* extended attributes are only allowed on regular files and
      directories.  Sticky directories further restrict write access to the owner
      and privileged users.  (See the attr(5) man page for an explanation.)
      
      The original check in ext2/ext3 when user.* xattrs were merged was more
      restrictive than intended, and when the xattr permission checks were moved
      into the VFS, read access to user.* attributes on sticky directores ended
      up being denied in addition.
      
      Originally-from: Gerard Neil <xyzzy@devferret.org>
      Signed-off-by: default avatarAndreas Gruenbacher <agruen@suse.de>
      Cc: Dave Kleikamp <shaggy@austin.ibm.com>
      Cc: Jan Engelhardt <jengelh@linux01.gwdg.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f1f2d871
    • Stephen Rothwell's avatar
      [PATCH] Fix sys_move_pages when a NULL node list is passed · 8ce08464
      Stephen Rothwell authored
      sys_move_pages() uses vmalloc() to allocate an array of structures that is
      fills with information passed from user mode and then passes to
      do_stat_pages() (in the case the node list is NULL).  do_stat_pages()
      depends on a marker in the node field of the structure to decide how large
      the array is and this marker is correctly inserted into the last element of
      the array.  However, vmalloc() doesn't zero the memory it allocates and if
      the user passes NULL for the node list, then the node fields are not filled
      in (except for the end marker).  If the memory the vmalloc() returned
      happend to have a word with the marker value in it in just the right place,
      do_pages_stat will fail to fill the status field of part of the array and
      we will return (random) kernel data to user mode.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Christoph Lameter <clameter@engr.sgi.com>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      8ce08464
    • Peer Chen's avatar
      [PATCH] IDE: Add the support of nvidia PATA controllers of MCP67 to amd74xx.c · cda5e61a
      Peer Chen authored
      Add support for PATA controllers of MCP67 to amd74xx.c.
      Signed-off-by: default avatarPeer Chen <pchen@nvidia.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Acked-by: default avatarAlan Cox <alan@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      cda5e61a
    • Oleg Nesterov's avatar
      [PATCH] fix Documentation/accounting/getdelays.c buf size · 88040230
      Oleg Nesterov authored
      getdelays reports a "fatal reply error, errno 258". We don't have enough room
      for multi-threaded exit (PID + TGID).
      Signed-off-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
      Cc: Balbir Singh <balbir@in.ibm.com>
      Cc: Shailabh Nagar <nagar@watson.ibm.com>
      Cc: Jay Lan <jlan@engr.sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      88040230
    • Amol Lad's avatar
      [PATCH] drivers/isdn/hysdn/hysdn_sched.c: sleep after taking spinlock fix · 1f604c4b
      Amol Lad authored
      spin_lock_irq{save,restore} is incorrectly called here (the function can
      sleep after acquring the lock).
      
      done the necessary corrections and removed unwanted cli/sti.
      Signed-off-by: default avatarAmol Lad <amol@verismonetworks.com>
      Signed-off-by: default avatarKarsten Keil <kkeil@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1f604c4b
    • Stephen Rothwell's avatar
      [PATCH] powerpc: wire up sys_migrate_pages · 43530d2b
      Stephen Rothwell authored
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Christoph Lameter <clameter@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      43530d2b
    • Stephen Rothwell's avatar
      [PATCH] Create compat_sys_migrate_pages · 3fd59397
      Stephen Rothwell authored
      This is needed on bigendian 64bit architectures.
      Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: default avatarChristoph Lameter <clameter@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3fd59397
    • Jeff Dike's avatar
      [PATCH] uml: include tidying · 1f6f6164
      Jeff Dike authored
      In order to get the __NR_* constants, we need sys/syscall.h.
      linux/unistd.h works as well since it includes syscall.h, however syscall.h
      is more parsimonious.  We were inconsistent in this, and this patch adds
      syscall.h includes where necessary and removes linux/unistd.h includes
      where they are not needed.
      
      asm/unistd.h also includes the __NR_* constants, but these are not the
      glibc-sanctioned ones, so this also removes one such inclusion.
      Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1f6f6164
    • Jeff Dike's avatar
      [PATCH] uml: fix I/O hang · 53b17332
      Jeff Dike authored
      Fix a UML hang in which everything would just stop until some I/O happened
      - a ping, someone whacking the keyboard - at which point everything would
      start up again as though nothing had happened.
      
      The cause was gcc reordering some code which absolutely needed to be
      executed in the order in the source.  When unblock_signals switches signals
      from off to on, it needs to see if any interrupts had happened in the
      critical section.  The interrupt handlers check signals_enabled - if it is
      zero, then the handler adds a bit to the "pending" bitmask and returns.
      unblock_signals checks this mask to see if any signals need to be
      delivered.
      
      The crucial part is this:
      	signals_enabled = 1;
      	save_pending = pending;
      	if(save_pending == 0)
      		return;
      	pending = 0;
      
      In order to avoid an interrupt arriving between reading pending and setting
      it to zero, in which case, the record of the interrupt would be erased,
      signals are enabled.
      
      What happened was that gcc reordered this so that 'save_pending = pending'
      came before 'signals_enabled = 1', creating a one-instruction window within
      which an interrupt could arrive, set its bit in pending, and have it be
      immediately erased.
      
      When the I/O workload is purely disk-based, the loss of a block device
      interrupt stops the entire I/O system because the next block request will
      wait for the current one to finish.  Thus the system hangs until something
      else causes some I/O to arrive, such as a network packet or console input.
      
      The fix to this particular problem is a memory barrier between enabling
      signals and reading the pending signal mask.  An xchg would also probably
      work.
      
      Looking over this code for similar problems led me to do a few more
      things:
      
      - make signals_enabled and pending volatile so that they don't get cached
        in registers
      
      - add an mb() to the return paths of block_signals and unblock_signals so
        that the modification of signals_enabled doesn't get shuffled into the
        caller in the event that these are inlined in the future.
      Signed-off-by: default avatarJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      53b17332
    • Jeff Mahoney's avatar
      [PATCH] reiserfs: reset errval after initializing bitmap cache · d2c89a42
      Jeff Mahoney authored
      Callers after reiserfs_init_bitmap_cache() expect errval to contain -EINVAL
      until much later.  If a condition fails before errval is reset later,
      reiserfs_fill_super() will mistakenly return 0, causing an Oops in
      do_add_mount().  This patch resets errval to -EINVAL after the call.
      
      I view this as a temporary fix and real error codes should be used
      throughout reiserfs_fill_super().
      Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d2c89a42
    • Andrew Morton's avatar
      [PATCH] spi section fix · d3e5a938
      Andrew Morton authored
      WARNING: vmlinux - Section mismatch: reference to .init.text:spi_register_board_info from __ksymtab_gpl between '__ksymtab_spi_register_board_info' (at offset 0xc032f7d0) and '__ksymtab_spi_alloc_master'
      
      Fix this by removing the export.
      Acked-by: default avatarDavid Brownell <david-b@pacbell.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d3e5a938
    • Rafael J. Wysocki's avatar
      [PATCH] swsusp: debugging · b918f6e6
      Rafael J. Wysocki authored
      Add a swsusp debugging mode.  This does everything that's needed for a suspend
      except for actually suspending.  So we can look in the log messages and work
      out a) what code is being slow and b) which drivers are misbehaving.
      
      (1)
      # echo testproc > /sys/power/disk
      # echo disk > /sys/power/state
      
      This should turn off the non-boot CPU, freeze all processes, wait for 5
      seconds and then thaw the processes and the CPU.
      
      (2)
      # echo test > /sys/power/disk
      # echo disk > /sys/power/state
      
      This should turn off the non-boot CPU, freeze all processes, shrink
      memory, suspend all devices, wait for 5 seconds, resume the devices etc.
      
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Stefan Seyfried <seife@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      b918f6e6
    • Andrew Morton's avatar
      [PATCH] acpi_noirq section fix · 90d53909
      Andrew Morton authored
      WARNING: vmlinux - Section mismatch: reference to .init.data:acpi_noirq from .text between 'pcibios_penalize_isa_irq' (at offset 0xc026ffa1) and 'pirq_serverworks_get'
      Acked-by: default avatar"Brown, Len" <len.brown@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      90d53909
    • Andrew Morton's avatar
      [PATCH] schedule removal of FUTEX_FD · 19c6b6ed
      Andrew Morton authored
      Apparently FUTEX_FD is unfixably racy and nothing uses it (or if it does, it
      shouldn't).
      
      Add a warning printk, give any remaining users six months to migrate off it.
      
      Cc: Ulrich Drepper <drepper@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Acked-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      19c6b6ed
    • Andrew Morton's avatar
      [PATCH] Add printk_timed_ratelimit() · f46c4833
      Andrew Morton authored
      printk_ratelimit() has global state which makes it not useful for callers
      which wish to perform ratelimiting at a particular frequency.
      
      Add a printk_timed_ratelimit() which utilises caller-provided state storage to
      permit more flexibility.
      
      This function can in fact be used for things other than printk ratelimiting
      and is perhaps poorly named.
      
      Cc: Ulrich Drepper <drepper@redhat.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f46c4833
    • Daniel Yeisley's avatar
      [PATCH] init_reap_node() initialization fix · 7f6b8876
      Daniel Yeisley authored
      It looks like there is a bug in init_reap_node() in slab.c that can cause
      multiple oops's on certain ES7000 configurations.  The variable reap_node
      is defined per cpu, but only initialized on a single CPU.  This causes an
      oops in next_reap_node() when __get_cpu_var(reap_node) returns the wrong
      value.  Fix is below.
      Signed-off-by: default avatarDan Yeisley <dan.yeisley@unisys.com>
      Cc: Andi Kleen <ak@suse.de>
      Acked-by: default avatarChristoph Lameter <clameter@engr.sgi.com>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Manfred Spraul <manfred@colorfullife.com>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      7f6b8876
    • Yvan Seth's avatar
      [PATCH] ipmi_si_intf.c sets bad class_mask with PCI_DEVICE_CLASS · d13adb60
      Yvan Seth authored
      Taken from http://bugzilla.kernel.org/show_bug.cgi?id=7439
      
      It looks like device registration in drivers/char/ipmi/ipmi_si_intf.c was
      cleaned up and a small error was made when setting the class_mask.  The fix
      is simple as the correct mask value is defined in the code but is not used.
      Acked-by: default avatarCorey Minyard <minyard@acm.org>
      Cc: <stable@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      d13adb60
    • Srinivasa Ds's avatar
      [PATCH] NFS4: fix for recursive locking problem · 7ef55b8a
      Srinivasa Ds authored
      When I was performing some operations on NFS, I got below error on server
      side.
      
        =============================================
        [ INFO: possible recursive locking detected ]
        2.6.19-prep #1
        ---------------------------------------------
        nfsd4/3525 is trying to acquire lock:
         (&inode->i_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
      
        but task is already holding lock:
         (&inode->i_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
      
        other info that might help us debug this:
        2 locks held by nfsd4/3525:
         #0:  (client_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
         #1:  (&inode->i_mutex){--..}, at: [<c0611e5a>] mutex_lock+0x21/0x24
      
        stack backtrace:
         [<c04051ed>] show_trace_log_lvl+0x58/0x16a
         [<c04057fa>] show_trace+0xd/0x10
         [<c0405913>] dump_stack+0x19/0x1b
         [<c043b6f1>] __lock_acquire+0x778/0x99c
         [<c043be86>] lock_acquire+0x4b/0x6d
         [<c0611ceb>] __mutex_lock_slowpath+0xbc/0x20a
         [<c0611e5a>] mutex_lock+0x21/0x24
         [<c047fd7e>] vfs_rmdir+0x76/0xf8
         [<f94b7ce9>] nfsd4_clear_clid_dir+0x2c/0x41 [nfsd]
         [<f94b7de9>] nfsd4_remove_clid_dir+0xb1/0xe8 [nfsd]
         [<f94b307b>] laundromat_main+0x9b/0x1c3 [nfsd]
         [<c04333d6>] run_workqueue+0x7a/0xbb
         [<c0433d0b>] worker_thread+0xd2/0x107
         [<c0436285>] kthread+0xc3/0xf2
         [<c0402005>] kernel_thread_helper+0x5/0xb
        ===================================================================
      
      Cause for this problem was,2 successive mutex_lock calls on 2 diffrent inodes ,as shown below
      
      	static int
      	nfsd4_clear_clid_dir(struct dentry *dir, struct dentry *dentry)
      	{
      	        int status;
      
      	        /* For now this directory should already be empty, but we empty it of
              	 * any regular files anyway, just in case the directory was created by
      	         * a kernel from the future.... */
              	nfsd4_list_rec_dir(dentry, nfsd4_remove_clid_file);
      	        mutex_lock(&dir->d_inode->i_mutex);
      	        status = vfs_rmdir(dir->d_inode, dentry);
      	...
      
      	int vfs_rmdir(struct inode *dir, struct dentry *dentry)
      	{
      	        int error = may_delete(dir, dentry, 1);
      
      	        if (error)
      	                return error;
      
      	        if (!dir->i_op || !dir->i_op->rmdir)
              	        return -EPERM;
      
      	        DQUOT_INIT(dir);
      
      	        mutex_lock(&dentry->d_inode->i_mutex);
      	...
      
      So I have developed the patch to overcome this problem.
      Signed-off-by: default avatarSrinivasa DS <srinivasa@in.ibm.com>
      Cc: Neil Brown <neilb@suse.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      7ef55b8a