1. 21 Dec, 2007 1 commit
    • Ingo Molnar's avatar
      x86: fix die() to not be preemptible · c0a698b7
      Ingo Molnar authored
      Andrew "Eagle Eye" Morton noticed that we use raw_local_save_flags()
      instead of raw_local_irq_save(flags) in die(). This allows the
      preemption of oopsing contexts - which is highly undesirable. It also
      causes CONFIG_DEBUG_PREEMPT to complain, as reported by Miles Lane.
      
      this bug was introduced via:
      
        commit 39743c9e
        Author: Andi Kleen <ak@suse.de>
        Date:   Fri Oct 19 20:35:03 2007 +0200
      
            x86: use raw locks during oopses
      
      -               spin_lock_irqsave(&die.lock, flags);
      +               __raw_spin_lock(&die.lock);
      +               raw_local_save_flags(flags);
      
      that is not a correct open-coding of spin_lock_irqsave(): both the
      ordering is wrong (irqs should be disabled _first_), and the wrong
      flags-saving API was used.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      c0a698b7
  2. 20 Dec, 2007 11 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched · faa4877f
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:
        debug: add end-of-oops marker
        sched: rt: account the cpu time during the tick
      faa4877f
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm · 17eb2c3b
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:
        dm crypt: use bio_add_page
        dm: merge max_hw_sector
        dm: trigger change uevent on rename
        dm crypt: fix write endio
        dm mpath: hp requires scsi
        dm: table detect io beyond device
      17eb2c3b
    • Milan Broz's avatar
      dm crypt: use bio_add_page · 91e10625
      Milan Broz authored
      Fix possible max_phys_segments violation in cloned dm-crypt bio.
      
      In write operation dm-crypt needs to allocate new bio request
      and run crypto operation on this clone. Cloned request has always
      the same size, but number of physical segments can be increased
      and violate max_phys_segments restriction.
      
      This can lead to data corruption and serious hardware malfunction.
      This was observed when using XFS over dm-crypt and at least
      two HBA controller drivers (arcmsr, cciss) recently.
      
      Fix it by using bio_add_page() call (which tests for other
      restrictions too) instead of constructing own biovec.
      
      All versions of dm-crypt are affected by this bug.
      
      Cc: stable@kernel.org
      Cc:  dm-crypt@saout.de
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      91e10625
    • Neil Brown's avatar
      dm: merge max_hw_sector · 91212507
      Neil Brown authored
      Make sure dm honours max_hw_sectors of underlying devices
      
        We still have no firm testing evidence in support of this patch but
        believe it may help to resolve some bug reports.  - agk
      Signed-off-by: default avatarNeil Brown <neilb@suse.de>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      91212507
    • Alasdair G Kergon's avatar
      dm: trigger change uevent on rename · 69267a30
      Alasdair G Kergon authored
      Insert a missing KOBJ_CHANGE notification when a device is renamed.
      
      Cc: Scott James Remnant <scott@ubuntu.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      69267a30
    • Milan Broz's avatar
      dm crypt: fix write endio · adfe4770
      Milan Broz authored
      Fix BIO_UPTODATE test for write io.
      
      Cc: stable@kernel.org
      Cc: dm-crypt@saout.de
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      adfe4770
    • Paul Mundt's avatar
      dm mpath: hp requires scsi · d1622e89
      Paul Mundt authored
      With CONFIG_SCSI=n __scsi_print_sense() is never linked in.
      
      drivers/built-in.o: In function `hp_sw_end_io':
      dm-mpath-hp-sw.c:(.text+0x914f8): undefined reference to `__scsi_print_sense'
      
      Caught with a randconfig on current git.
      Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      d1622e89
    • Jun'ichi Nomura's avatar
      dm: table detect io beyond device · 512875bd
      Jun'ichi Nomura authored
      This patch fixes a panic on shrinking a DM device if there is
      outstanding I/O to the part of the device that is being removed.
      (Normally this doesn't happen - a filesystem would be resized first,
      for example.)
      
      The bug is that __clone_and_map() assumes dm_table_find_target()
      always returns a valid pointer.  It may fail if a bio arrives from the
      block layer but its target sector is no longer included in the DM
      btree.
      
      This patch appends an empty entry to table->targets[] which will
      be returned by a lookup beyond the end of the device.
      
      After calling dm_table_find_target(), __clone_and_map() and target_message()
      check for this condition using
      dm_target_is_valid().
      
      Sample test script to trigger oops:
      512875bd
    • Ivan Kokshaysky's avatar
      mm: fix exit_mmap BUG() on a.out binary exit · 3c378158
      Ivan Kokshaysky authored
      The problem was introduced by commit "mm: variable length argument
      support" (b6a2fea3)
      as it didn't update fs/binfmt_aout.c like other binfmt's.
      
      I noticed that on alpha when accidentally launched old OSF/1
      Acrobat Reader binary. Obviously, other architectures are affected
      as well.
      Signed-off-by: default avatarIvan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Ollie Wild <aaw@google.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Hugh Dickins <hugh@veritas.com>
      Cc: Adrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3c378158
    • Arjan van de Ven's avatar
      debug: add end-of-oops marker · 2c3b20e9
      Arjan van de Ven authored
      Right now it's nearly impossible for parsers that collect kernel crashes
      from logs or emails (such as www.kerneloops.org) to detect the
      end-of-oops condition. In addition, it's not currently possible to
      detect whether or not 2 oopses that look alike are actually the same
      oops reported twice, or are truly two unique oopses.
      
      This patch adds an end-of-oops marker, and makes the end marker include
      a very simple 64-bit random ID to be able to detect duplicate reports.
      
      Normally, this ID is calculated as a late_initcall() (in the hope that
      at that time there is enough entropy to get a unique enough ID); however
      for early oopses the oops_exit() function needs to generate the ID on
      the fly.
      
      We do this all at the _end_ of an oops printout, so this does not impact
      our ability to get the most important portions of a crash out to the
      console first.
      
      [ Sidenote: the already existing oopses-since-bootup counter we print
        during crashes serves as the differentiator between multiple oopses
        that trigger during the same bootup. ]
      
      Tested on 32-bit and 64-bit x86. Artificially injected very early
      crashes as well, as expected they result in this constant ID after
      multiple bootups:
      
        ---[ end trace ca143223eefdc828 ]---
        ---[ end trace ca143223eefdc828 ]---
      
      because the random pools are still all zero. But it all still works
      fine and causes no additional problems (which is the main goal of
      instrumentation code).
      Signed-off-by: default avatarArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      2c3b20e9
    • Peter Zijlstra's avatar
      sched: rt: account the cpu time during the tick · 67e2be02
      Peter Zijlstra authored
      Realtime tasks would not account their runtime during ticks. Which would lead
      to:
      
              struct sched_param param = { .sched_priority = 10 };
              pthread_setschedparam(pthread_self(), SCHED_FIFO, &param);
      
      	while (1) ;
      
      Not showing up in top.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      67e2be02
  3. 19 Dec, 2007 24 commits
  4. 18 Dec, 2007 4 commits