1. 18 Mar, 2009 11 commits
  2. 17 Mar, 2009 27 commits
  3. 16 Mar, 2009 2 commits
    • Linus Torvalds's avatar
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 · 19695ec0
      Linus Torvalds authored
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
        acpi-wmi: unsigned cannot be less than 0
        thinkpad-acpi: fix module autoloading for older models
        acer-wmi: Unmark as 'experimental'
        acpi-wmi: Unmark as 'experimental'
        acer-wmi: double free in acer_rfkill_exit()
        platform/x86: depends instead of select for laptop platform drivers
        asus-laptop: use select instead of depends on
        eeepc-laptop: restore acpi_generate_proc_event()
        asus-laptop: restore acpi_generate_proc_event()
        acpi: check for pxm_to_node_map overflow
        ACPI: remove doubled status checking
        ACPI suspend: Blacklist Toshiba Satellite L300 that requires to set SCI_EN directly on resume
        Revert "ACPI: make some IO ports off-limits to AML"
        suspend: switch the Asus Pundit P1-AH2 to old ACPI sleep ordering
      19695ec0
    • Milan Broz's avatar
      dm crypt: wait for endio to complete before destruction · b35f8caa
      Milan Broz authored
      The following oops has been reported when dm-crypt runs over a loop device.
      
      ...
      [   70.381058] Process loop0 (pid: 4268, ti=cf3b2000 task=cf1cc1f0 task.ti=cf3b2000)
      ...
      [   70.381058] Call Trace:
      [   70.381058]  [<d0d76601>] ? crypt_dec_pending+0x5e/0x62 [dm_crypt]
      [   70.381058]  [<d0d767b8>] ? crypt_endio+0xa2/0xaa [dm_crypt]
      [   70.381058]  [<d0d76716>] ? crypt_endio+0x0/0xaa [dm_crypt]
      [   70.381058]  [<c01a2f24>] ? bio_endio+0x2b/0x2e
      [   70.381058]  [<d0806530>] ? dec_pending+0x224/0x23b [dm_mod]
      [   70.381058]  [<d08066e4>] ? clone_endio+0x79/0xa4 [dm_mod]
      [   70.381058]  [<d080666b>] ? clone_endio+0x0/0xa4 [dm_mod]
      [   70.381058]  [<c01a2f24>] ? bio_endio+0x2b/0x2e
      [   70.381058]  [<c02bad86>] ? loop_thread+0x380/0x3b7
      [   70.381058]  [<c02ba8a1>] ? do_lo_send_aops+0x0/0x165
      [   70.381058]  [<c013754f>] ? autoremove_wake_function+0x0/0x33
      [   70.381058]  [<c02baa06>] ? loop_thread+0x0/0x3b7
      
      When a table is being replaced, it waits for I/O to complete
      before destroying the mempool, but the endio function doesn't
      call mempool_free() until after completing the bio.
      
      Fix it by swapping the order of those two operations.
      
      The same problem occurs in dm.c with md referenced after dec_pending.
      Again, we swap the order.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
      Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
      b35f8caa