1. 20 2月, 2008 4 次提交
    • L
      Revert "SLUB: Alternate fast paths using cmpxchg_local" · 00e962c5
      Linus Torvalds 提交于
      This reverts commit 1f84260c, which is
      suspected to be the reason for some very occasional and hard-to-trigger
      crashes that usually look related to memory allocation (mostly reported
      in networking, but since that's generally the most common source of
      shortlived allocations - and allocations in interrupt contexts - that in
      itself is not a big clue).
      
      See for example
      	http://bugzilla.kernel.org/show_bug.cgi?id=9973
      	http://lkml.org/lkml/2008/2/19/278
      etc.
      
      One promising suspicion for what the root cause of bug is (which also
      explains why it's so hard to trigger in practice) came from Eric
      Dumazet:
      
         "I wonder how SLUB_FASTPATH is supposed to work, since it is affected
          by a classical ABA problem of lockless algo.
      
          cmpxchg_local(&c->freelist, object, object[c->offset]) can succeed,
          while an interrupt came (on this cpu), and several allocations were
          done, and one free was performed at the end of this interruption, so
          'object' was recycled.
      
          c->freelist can then contain the previous value (object), but
          object[c->offset] was changed by IRQ.
      
          We then put back in freelist an already allocated object."
      
      but another reason for the revert is simply that everybody agrees that
      this code was the main suspect just by virtue of the pattern of oopses.
      
      Cc: Torsten Kaiser <just.for.lkml@googlemail.com>
      Cc: Christoph Lameter <clameter@sgi.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Pekka Enberg <penberg@cs.helsinki.fi>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Eric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      00e962c5
    • L
      Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 · aa3f9803
      Linus Torvalds 提交于
      * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
        [S390] qdio: FCP/SCSI write I/O stagnates on LPAR
        [S390] Fix futex_atomic_cmpxchg_std inline assembly.
        [S390] dcss: Fix Unlikely(x) != y
        [S390] sclp: clean up send/receive naming scheme
        [S390] etr: fix compile error on !SMP
        [S390] qdio: fix qdio_activate timeout handling.
        [S390] Initialize per cpu lowcores on cpu hotplug.
        [S390] find bit corner case.
        [S390] dasd: fix locking in __dasd_device_process_final_queue
        [S390] Make sure enabled wait psw is loaded in default_idle.
        [S390] Let NR_CPUS default to 32/64 on s390/s390x.
        [S390] cio: Do timed recovery on workqueue.
        [S390] cio: Remember to initialize recovery_lock.
      aa3f9803
    • L
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · f6c42766
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        libata: implement drain buffers
        libata: eliminate the home grown dma padding in favour of
        block: clear drain buffer if draining for write command
        block: implement request_queue->dma_drain_needed
        block: add request->raw_data_len
        block: update bio according to DMA alignment padding
        libata: update ATAPI overflow draining
        elevator: make elevator_get() attempt to load the appropriate module
        cfq-iosched: add hlist for browsing parallel to the radix tree
        block: make blk_rq_map_user() clear ->bio if it unmaps it
        fs/block_dev.c: remove #if 0'ed code
        make struct def_blk_aops static
        make blk_settings_init() static
        make blk_ioc_init() static
        make blk-core.c:request_cachep static again
      f6c42766
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog · 9ef38eaf
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
        [WATCHDOG] HP ProLiant WatchDog driver
        [WATCHDOG] blackfin Watchdog driver: relocate all strings used in __init functions to __initdata
        [WATCHDOG] Convert mtx1 wdt to be a platform device and use generic GPIO API
        [WATCHDOG] Add support for SB1 hardware watchdog
      9ef38eaf
  2. 19 2月, 2008 36 次提交