1. 06 11月, 2006 15 次提交
  2. 05 11月, 2006 5 次提交
  3. 04 11月, 2006 20 次提交
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6 · a0d2db26
      Linus Torvalds 提交于
      * 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
    • L
      Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 · ced3985f
      Linus Torvalds 提交于
      * 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
    • A
      [PATCH] Fix user.* xattr permission check for sticky dirs · f1f2d871
      Andreas Gruenbacher 提交于
      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: NAndreas Gruenbacher <agruen@suse.de>
      Cc: Dave Kleikamp <shaggy@austin.ibm.com>
      Cc: Jan Engelhardt <jengelh@linux01.gwdg.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f1f2d871
    • S
      [PATCH] Fix sys_move_pages when a NULL node list is passed · 8ce08464
      Stephen Rothwell 提交于
      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: NStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Christoph Lameter <clameter@engr.sgi.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8ce08464
    • P
      [PATCH] IDE: Add the support of nvidia PATA controllers of MCP67 to amd74xx.c · cda5e61a
      Peer Chen 提交于
      Add support for PATA controllers of MCP67 to amd74xx.c.
      Signed-off-by: NPeer Chen <pchen@nvidia.com>
      Cc: Jeff Garzik <jeff@garzik.org>
      Acked-by: NAlan Cox <alan@redhat.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cda5e61a
    • O
      [PATCH] fix Documentation/accounting/getdelays.c buf size · 88040230
      Oleg Nesterov 提交于
      getdelays reports a "fatal reply error, errno 258". We don't have enough room
      for multi-threaded exit (PID + TGID).
      Signed-off-by: NOleg 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: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      88040230
    • A
      [PATCH] drivers/isdn/hysdn/hysdn_sched.c: sleep after taking spinlock fix · 1f604c4b
      Amol Lad 提交于
      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: NAmol Lad <amol@verismonetworks.com>
      Signed-off-by: NKarsten Keil <kkeil@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1f604c4b
    • S
      [PATCH] powerpc: wire up sys_migrate_pages · 43530d2b
      Stephen Rothwell 提交于
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Cc: Christoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      43530d2b
    • S
      [PATCH] Create compat_sys_migrate_pages · 3fd59397
      Stephen Rothwell 提交于
      This is needed on bigendian 64bit architectures.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Acked-by: NChristoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3fd59397
    • J
      [PATCH] uml: include tidying · 1f6f6164
      Jeff Dike 提交于
      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: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1f6f6164
    • J
      [PATCH] uml: fix I/O hang · 53b17332
      Jeff Dike 提交于
      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: NJeff Dike <jdike@addtoit.com>
      Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      53b17332
    • J
      [PATCH] reiserfs: reset errval after initializing bitmap cache · d2c89a42
      Jeff Mahoney 提交于
      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: NJeff Mahoney <jeffm@suse.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d2c89a42
    • A
      [PATCH] spi section fix · d3e5a938
      Andrew Morton 提交于
      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: NDavid Brownell <david-b@pacbell.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d3e5a938
    • R
      [PATCH] swsusp: debugging · b918f6e6
      Rafael J. Wysocki 提交于
      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: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b918f6e6
    • A
      [PATCH] acpi_noirq section fix · 90d53909
      Andrew Morton 提交于
      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: N"Brown, Len" <len.brown@intel.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      90d53909
    • A
      [PATCH] schedule removal of FUTEX_FD · 19c6b6ed
      Andrew Morton 提交于
      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: NThomas Gleixner <tglx@linutronix.de>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      19c6b6ed
    • A
      [PATCH] Add printk_timed_ratelimit() · f46c4833
      Andrew Morton 提交于
      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: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      f46c4833
    • D
      [PATCH] init_reap_node() initialization fix · 7f6b8876
      Daniel Yeisley 提交于
      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: NDan Yeisley <dan.yeisley@unisys.com>
      Cc: Andi Kleen <ak@suse.de>
      Acked-by: NChristoph 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: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7f6b8876
    • Y
      [PATCH] ipmi_si_intf.c sets bad class_mask with PCI_DEVICE_CLASS · d13adb60
      Yvan Seth 提交于
      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: NCorey Minyard <minyard@acm.org>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      d13adb60
    • S
      [PATCH] NFS4: fix for recursive locking problem · 7ef55b8a
      Srinivasa Ds 提交于
      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: NSrinivasa DS <srinivasa@in.ibm.com>
      Cc: Neil Brown <neilb@suse.de>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7ef55b8a