1. Jul 06, 2006
    • Benjamin Herrenschmidt's avatar
      [PATCH] powerpc: Fix loss of interrupts with MPIC · ba1826e5
      Benjamin Herrenschmidt authored
      
      
      With the new interrupt rework, an interrupt "host" map() callback can be
      called after the interrupt is already active.
      
      It's called again for an already mapped interrupt to allow changing the
      trigger setup, and currently this is not guarded with a test of wether
      the interrupt is requested or not.
      
      I plan to change some of this logic to be a bit less lenient against
      random reconfiguring of live interrupts but just not yet.
      
      The ported MPIC driver has a bug where when that happens, it will mask
      the interrupt.  This changes it to preserve the previous masking of the
      interrupt instead.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ba1826e5
  2. Jul 05, 2006
    • Linus Torvalds's avatar
      Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq · ca78f6ba
      Linus Torvalds authored
      * master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq:
        Move workqueue exports to where the functions are defined.
        [CPUFREQ] Misc cleanups in ondemand.
        [CPUFREQ] Make ondemand sampling per CPU and remove the mutex usage in sampling path.
        [CPUFREQ] Add queue_delayed_work_on() interface for workqueues.
        [CPUFREQ] Remove slowdown from ondemand sampling path.
      ca78f6ba
    • Linus Torvalds's avatar
      Fix up headers_install wrt devfs removal · 7ad7153b
      Linus Torvalds authored
      
      
      No devfs_fs.h header any more..
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      7ad7153b
    • Linus Torvalds's avatar
      Merge git://git.infradead.org/hdrinstall-2.6 · 6fa0cb11
      Linus Torvalds authored
      * git://git.infradead.org/hdrinstall-2.6:
        Remove export of include/linux/isdn/tpam.h
        Remove <linux/i2c-id.h> and <linux/i2c-algo-ite.h> from userspace export
        Restrict headers exported to userspace for SPARC and SPARC64
        Add empty Kbuild files for 'make headers_install' in remaining arches.
        Add Kbuild file for Alpha 'make headers_install'
        Add Kbuild file for SPARC 'make headers_install'
        Add Kbuild file for IA64 'make headers_install'
        Add Kbuild file for S390 'make headers_install'
        Add Kbuild file for i386 'make headers_install'
        Add Kbuild file for x86_64 'make headers_install'
        Add Kbuild file for PowerPC 'make headers_install'
        Add generic Kbuild files for 'make headers_install'
        Basic implementation of 'make headers_check'
        Basic implementation of 'make headers_install'
      6fa0cb11
    • Arjan van de Ven's avatar
      [PATCH] fix AB-BA deadlock inversion at cs46xx_dsp_remove_scb · c6482dde
      Arjan van de Ven authored
      
      
      There is a code sequence where the locking is substream->self_group.lock
      -> ins->scbs[index].lock
      
      substream->self_group.lock is interrupt safe, and taken from irq context
      as well (trace is snipped for brevity)
      
      so what can happen is
      
         cpu 0                   	cpu 1
         user context			user context
      
      				take ins->scbs[index].lock without disabling interrupts
      
         get substream->self_group.lock (irqsafe)
         try to get ins->scbs[index].lock (spins)
      
      				interrupt happens
      				try to get substream->self_group.lock (spins)
      
      which is an obvious AB-BA deadlock
      
      fix is to just take the lock with _irqsafe
      
      Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Cc: Jaroslav Kysela <perex@suse.cz>
      Acked-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c6482dde
    • Zach Brown's avatar
      [PATCH] mthca: initialize send and receive queue locks separately · a46f9484
      Zach Brown authored
      
      
      mthca: initialize send and receive queue locks separately
      
      lockdep identifies a lock by the call site of its initialization.  By
      initializing the send and receive queue locks in mthca_wq_init() we confuse
      lockdep.  It warns that that the ordered acquiry of both locks in
      mthca_modify_qp() is recursive acquiry of one lock:
      
        =============================================
        [ INFO: possible recursive locking detected ]
        ---------------------------------------------
        modprobe/1192 is trying to acquire lock:
         (&wq->lock){....}, at: [<f892b4db>] mthca_modify_qp+0x60/0xa7b [ib_mthca]
        but task is already holding lock:
         (&wq->lock){....}, at: [<f892b4ce>] mthca_modify_qp+0x53/0xa7b [ib_mthca]
      
      Initializing the locks separately in mthca_alloc_qp_common() stops the
      warning and will let lockdep enforce proper ordering on paths that acquire
      both locks.
      
      Signed-off-by: default avatarZach Brown <zach.brown@oracle.com>
      Cc: Roland Dreier <rolandd@cisco.com>
      Cc: Arjan van de Ven <arjan@linux.intel.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a46f9484
    • Yasunori Goto's avatar
      [PATCH] Fix copying of pgdat array on each node for ia64 memory hotplug · dd8041f1
      Yasunori Goto authored
      
      
      I found a bug in memory hot-add code for ia64.
      
      IA64's code has copies of pgdat's array on each node to reduce memory
      access over crossing node.  This array is used by NODE_DATA() macro.  When
      new node is hot-added, this pgdat's array should be updated and copied on
      new node too.
      
      However, I used for_each_online_node() in scatter_node_data() to copy
      it. This meant its array is not copied on new node.
      Because initialization of structures for new node was halfway,
      so online_node_map couldn't be set at this time.
      
      To copy arrays on new node, I changed it to check value of pgdat_list[]
      which is source array of copies.  I tested this patch with my Memory Hotadd
      emulation on Tiger4.  This patch is for 2.6.17-git20.
      
      Signed-off-by: default avatarYasunori Goto <y-goto@jp.fujitsu.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      dd8041f1
  3. Jul 04, 2006