1. 24 Apr, 2009 22 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes · 12bac708
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes:
        GFS2: Ensure that the inode goal block settings are updated
        GFS2: Fix bug in block allocation
        bitops: Add __ffs64 bitop
      12bac708
    • Linus Torvalds's avatar
      Merge branch 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 60911731
      Linus Torvalds authored
      * 'kvm-updates/2.6.30' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: Unregister cpufreq notifier on unload
        KVM: x86: release time_page on vcpu destruction
        KVM: Fix overlapping check for memory slots
        KVM: MMU: disable global page optimization
        KVM: ia64: fix locking order entering guest
        KVM: MMU: Fix off-by-one calculating large page count
      60911731
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · d1f53fb9
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
        MAINTAINERS: update IDE entry
        palm_bk3710: palm_bk3710_udmatimings[] CodingStyle fixup
        palm_bk3710: those registers/bitfields don't exist
        mediabay: fix build for CONFIG_BLOCK=n
        ide: Stop disks on reboot for laptop which cuts power
        ide-cd: fix kernel crash on hppa regression
        palm_bk3710: UDMA performance fix
      d1f53fb9
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 · 90c8fce5
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
        ALSA: hda - Add quirk for Packard Bell RS65
        [ALSA] intel8x0: another attempt to fix ac97_clock measure routine
        [ALSA] ac97_codec: increase timeout for analog subsections
        ALSA: hda - Add quirks for Realtek codecs
        ALSA: hda - Fix alc662_init_verbs
        ALSA: keywest: Convert to new-style i2c driver
        ALSA: AOA: Convert onyx and tas codecs to new-style i2c drivers
        ALSA: Atiixp: Add SSID for mute_led quirk (unknown HP model)
        ALSA: us122l: add snd_us122l_free()
        ASoC: Fix warning in wm9705
        ASoC: OMAP: Update contact addresses
        ASoC: pxa-ssp: Don't use SSCR0_SerClkDiv and SSCR0_SCR
        ALSA: us122l: Fix signedness in comparisions
      90c8fce5
    • Alan Cox's avatar
      radio_si470x: Fix free memory corruption · ec5f5bf8
      Alan Cox authored
      The release path for a disconnected device frees the object then unlocks
      the mutex in the freed object...
      
      Found by Dan Carpenter using Smatch
      Signed-off-by: default avatarAlan Cox <alan@lxorguk.ukuu.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ec5f5bf8
    • Niels de Vos's avatar
      serial: remove contact data · 79e95eba
      Niels de Vos authored
      Remove my name and emailaddress from note in the source. Wincor Nixdorf
      only has some ITE-chips on their mainboards, other chips are not
      available for me for testing.
      Signed-off-by: default avatarNiels de Vos <niels.devos@wincor-nixdorf.com>
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      79e95eba
    • Alan Cox's avatar
      cafe_nand: Fix warning · 67cd724f
      Alan Cox authored
      Wrong types on IRQ handler
      Signed-off-by: default avatarAlan Cox <alan@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      67cd724f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block · 97c68d00
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
        cfq-iosched: cache prio_tree root in cfqq->p_root
        cfq-iosched: fix bug with aliased request and cooperation detection
        cfq-iosched: clear ->prio_trees[] on cfqd alloc
        block: fix intermittent dm timeout based oops
        umem: fix request_queue lock warning
        block: simplify I/O stat accounting
        pktcdvd.h should include mempool.h
        cfq-iosched: use the default seek distance when there aren't enough seek samples
        cfq-iosched: make seek_mean converge more quickly
        block: make blk_abort_queue() ignore non-request based devices
        block: include empty disks in /proc/diskstats
        bio: use bio_kmalloc() in copy/map functions
        bio: fix bio_kmalloc()
        block: fix queue bounce limit setting
        block: fix SG_IO vector request data length handling
        scatterlist: make sure sg_miter_next() doesn't return 0 sized mappings
      97c68d00
    • David Howells's avatar
      MN10300: Update the ASB2303 defconfig · 596a5c4e
      David Howells authored
      Update the defconfig for the ASB2303 evaluation board.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      596a5c4e
    • Jonathan Corbet's avatar
      Delete slow-work timers properly · 418df63c
      Jonathan Corbet authored
      Slow-work appears to delete its timer as soon as the first user
      unregisters, even though other users could be active.  At the same time, it
      never seems to delete slow_work_oom_timer.  Arrange for both to happen in
      the shutdown path.
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      418df63c
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 3e241ff0
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (94 commits)
        netfilter: ctnetlink: fix gcc warning during compilation
        net/netrom: Fix socket locking
        netlabel: Always remove the correct address selector
        ucc_geth.c: Fix upsmr setting in RMII mode
        8139too: fix HW initial flow
        af_iucv: Fix race when queuing incoming iucv messages
        af_iucv: Test additional sk states in iucv_sock_shutdown
        af_iucv: Reject incoming msgs if RECV_SHUTDOWN is set
        af_iucv: fix oops in iucv_sock_recvmsg() for MSG_PEEK flag
        af_iucv: consider state IUCV_CLOSING when closing a socket
        iwlwifi: DMA fixes
        iwlwifi: add debugging for TX path
        mwl8: fix build warning.
        mac80211: fix alignment calculation bug
        mac80211: do not print WARN if config interface
        iwl3945: use cancel_delayed_work_sync to cancel rfkill_poll
        iwlwifi: fix EEPROM validation mask to include OTP only devices
        atmel: fix netdev ops conversion
        pcnet_cs: add cis(firmware) of the Allied Telesis LA-PCM
        mlx4_en: Fix cleanup if workqueue create in mlx4_en_add() fails
        ...
      3e241ff0
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6 · dc0046c7
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
        sparc: Fix bus type probing for ESP and LE devices.
        sparc32: Update defconfig.
        sparc64: Update defconfig.
      dc0046c7
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · f8c3301e
      Linus Torvalds authored
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        powerpc: Fix modular build of ide-pmac when mediabay is built in
        powerpc/pasemi: Fix build error on UP
        powerpc: Make macintosh/mediabay driver depend on CONFIG_BLOCK
        maintainers: Fix PS3 patterns
        powerpc/ps3: Fix CONFIG_PS3_FLASH=n build warning
        powerpc/32: Don't clobber personality flags on exec
        powerpc: Fix crash on CPU hotplug
        powerpc/85xx: Remove defconfigs that mpc85xx_{smp_}defconfig cover
        powerpc/85xx: Added SMP defconfig
        powerpc/85xx: Enabled a bunch of FSL specific drivers/options
        powerpc/85xx: Updated generic mpc85xx_defconfig
        powerpc: don't disable SATA interrupts on Freescale MPC8610 HPCD
        fsl_rio: Pass the proper device to dma mapping routines
        powerpc: Fix of_node_put() exit path in of_irq_map_one()
        powerpc/5200: defconfig updates
        powerpc/5200: Add FLASH nodes to lite5200 device tree
        powerpc/device-tree: Document MTD nodes with multiple "reg" tuples
        powerpc/of-device-tree: Factor MTD physmap bindings out of booting-without-of
        powerpc/5200: Bring the legacy fsl_spi_platform_data hooks back
      f8c3301e
    • Oleg Nesterov's avatar
      check_unsafe_exec: s/lock_task_sighand/rcu_read_lock/ · 437f7fdb
      Oleg Nesterov authored
      write_lock(&current->fs->lock) guarantees we can't wrongly miss
      LSM_UNSAFE_SHARE, this is what we care about. Use rcu_read_lock()
      instead of ->siglock to iterate over the sub-threads. We must see
      all CLONE_THREAD|CLONE_FS threads which didn't pass exit_fs(), it
      takes fs->lock too.
      
      With or without this patch we can miss the freshly cloned thread
      and set LSM_UNSAFE_SHARE, we don't care.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      [ Fixed lock/unlock typo  - Hugh ]
      Acked-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      437f7fdb
    • Oleg Nesterov's avatar
      do_execve() must not clear fs->in_exec if it was set by another thread · 8c652f96
      Oleg Nesterov authored
      If do_execve() fails after check_unsafe_exec(), it clears fs->in_exec
      unconditionally. This is wrong if we race with our sub-thread which
      also does do_execve:
      
      	Two threads T1 and T2 and another process P, all share the same
      	->fs.
      
      	T1 starts do_execve(BAD_FILE). It calls check_unsafe_exec(), since
      	->fs is shared, we set LSM_UNSAFE but not ->in_exec.
      
      	P exits and decrements fs->users.
      
      	T2 starts do_execve(), calls check_unsafe_exec(), now ->fs is not
      	shared, we set fs->in_exec.
      
      	T1 continues, open_exec(BAD_FILE) fails, we clear ->in_exec and
      	return to the user-space.
      
      	T1 does clone(CLONE_FS /* without CLONE_THREAD */).
      
      	T2 continues without LSM_UNSAFE_SHARE while ->fs is shared with
      	another process.
      
      Change check_unsafe_exec() to return res = 1 if we set ->in_exec, and change
      do_execve() to clear ->in_exec depending on res.
      
      When do_execve() suceeds, it is safe to clear ->in_exec unconditionally.
      It can be set only if we don't share ->fs with another process, and since
      we already killed all sub-threads either ->in_exec == 0 or we are the
      only user of this ->fs.
      
      Also, we do not need fs->lock to clear fs->in_exec.
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarRoland McGrath <roland@redhat.com>
      Acked-by: default avatarHugh Dickins <hugh@veritas.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8c652f96
    • Jens Axboe's avatar
      cfq-iosched: cache prio_tree root in cfqq->p_root · f2d1f0ae
      Jens Axboe authored
      Currently we look it up from ->ioprio, but ->ioprio can change if
      either the process gets its IO priority changed explicitly, or if
      cfq decides to temporarily boost it. So if we are unlucky, we can
      end up attempting to remove a node from a different rbtree root than
      where it was added.
      
      Fix this by using ->org_ioprio as the prio_tree index, since that
      will only change for explicit IO priority settings (not for a boost).
      Additionally cache the rbtree root inside the cfqq, then we don't have
      to add code to reinsert the cfqq in the prio_tree if IO priority changes.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      f2d1f0ae
    • Jens Axboe's avatar
      cfq-iosched: fix bug with aliased request and cooperation detection · 3ac6c9f8
      Jens Axboe authored
      cfq_prio_tree_lookup() should return the direct match, yet it always
      returns zero. Fix that.
      
      cfq_prio_tree_add() assumes that we don't get a direct match, while
      it is very possible that we do. Using O_DIRECT, you can have different
      cfqq with matching requests, since you don't have the page cache
      to serialize things for you. Fix this bug by only adding the cfqq if
      there isn't an existing match.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      3ac6c9f8
    • Jens Axboe's avatar
      cfq-iosched: clear ->prio_trees[] on cfqd alloc · 26a2ac00
      Jens Axboe authored
      Not strictly needed, but we should make it clear that we init the
      rbtree roots here.
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      26a2ac00
    • Hannes Reinecke's avatar
      block: fix intermittent dm timeout based oops · 17d5c8ca
      Hannes Reinecke authored
      Very rarely under stress testing of dm, oopses are occuring as
      something tampers with an old stack frame.  This has been traced back
      to blk_abort_queue() leaving a timeout_list pointing to the stack.
      The reason is that sometimes blk_abort_request() won't delete the
      timer (if the request is marked as complete but before the timer has
      been removed, a small race window).  Fix this by splicing back from
      the ususally empty list to the q->timeout_list.
      Signed-off-by: default avatarHannes Reinecke <hare@suse.de>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      17d5c8ca
    • Sage Weil's avatar
      umem: fix request_queue lock warning · f3c737de
      Sage Weil authored
      The umem driver issues two warnings on boot, due to blk_plug_device() and
      blk_remove_plug() being called without q->queue_lock held.  Starting with
      e48ec690 (block: extend queue_flag bitops), the queue_flag_* functions
      warn if q->queue_lock doesn't appear to be locked.  In fact, q->queue_lock
      is NULL (though that apparently isn't otherwise a problem as the driver is
      using card->lock for everything).
      
      Although blk_init_queue() with take a request_fn_proc and spinlock_t*,
      there isn't a corresponding init helper that takes a make_request_fn.
      Setting queue_lock to &card->lock explicitly seems to work fine for me.
      The warning goes away and the device appears to behave.
      
      [    1.531881] v2.3 : Micro Memory(tm) PCI memory board block driver
      [    1.538136] umem 0000:02:01.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
      [    1.545018] umem 0000:02:01.0: Micro Memory(tm) controller found (PCI Mem Module (Battery Backup))
      [    1.554176] umem 0000:02:01.0: CSR 0xfc9ffc00 -> 0xffffc200013d0c00 (0x100)
      [    1.561279] umem 0000:02:01.0: Size 1048576 KB, Battery 1 Disabled (FAILURE), Battery 2 Disabled (FAILURE)
      [    1.571114] umem 0000:02:01.0: Window size 16777216 bytes, IRQ 20
      [    1.577304] umem 0000:02:01.0: memory NOT initialized. Consider over-writing whole device.
      [    1.585989]  umema:<4>------------[ cut here ]------------
      [    1.591775] WARNING: at include/linux/blkdev.h:492 blk_plug_device+0x6d/0x106()
      [    1.592025] Hardware name: H8SSL
      [    1.592025] Modules linked in:
      [    1.592025] Pid: 1, comm: swapper Not tainted 2.6.29 #8
      [    1.592025] Call Trace:
      [    1.592025]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
      [    1.592025]  [<ffffffff8025a5b5>] ? save_trace+0x3f/0x9b
      [    1.592025]  [<ffffffff8025a68b>] ? add_lock_to_list+0x7a/0xba
      [    1.592025]  [<ffffffff8025e609>] ? validate_chain+0xb3b/0xce8
      [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
      [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
      [    1.592025]  [<ffffffff8025ef04>] ? __lock_acquire+0x74e/0x7b9
      [    1.592025]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
      [    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
      [    1.592025]  [<ffffffff80441556>] ? mm_make_request+0x27/0x59
      [    1.592025]  [<ffffffff803ad165>] blk_plug_device+0x6d/0x106
      [    1.592025]  [<ffffffff80441575>] mm_make_request+0x46/0x59
      [    1.592025]  [<ffffffff803ac2d9>] generic_make_request+0x335/0x3cf
      [    1.592025]  [<ffffffff8027fcc7>] ? mempool_alloc_slab+0x11/0x13
      [    1.592025]  [<ffffffff8027fdce>] ? mempool_alloc+0x45/0x101
      [    1.592025]  [<ffffffff8025a746>] ? put_lock_stats+0xe/0x27
      [    1.592025]  [<ffffffff803adda5>] submit_bio+0x10a/0x119
      [    1.592025]  [<ffffffff802c8d00>] submit_bh+0xe5/0x109
      [    1.592025]  [<ffffffff802cbf43>] block_read_full_page+0x2aa/0x2cb
      [    1.592025]  [<ffffffff802cf4c4>] ? blkdev_get_block+0x0/0x4c
      [    1.592025]  [<ffffffff805c90a8>] ? _spin_unlock_irq+0x36/0x51
      [    1.592025]  [<ffffffff80286836>] ? __lru_cache_add+0x92/0xb2
      [    1.592025]  [<ffffffff802cf008>] blkdev_readpage+0x13/0x15
      [    1.592025]  [<ffffffff8027de06>] read_cache_page_async+0x90/0x134
      [    1.592025]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
      [    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.592025]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
      [    1.592025]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
      [    1.592025]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
      [    1.592025]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
      [    1.592025]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.592025]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
      [    1.592025]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
      [    1.592025]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
      [    1.592025]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
      [    1.592025]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
      [    1.592025]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
      [    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.592025]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
      [    1.592025]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.592025]  [<ffffffff80209056>] _stext+0x56/0x130
      [    1.592025]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
      [    1.592025]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
      [    1.592025]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
      [    1.592025]  [<ffffffff8020d17a>] child_rip+0xa/0x20
      [    1.592025]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
      [    1.592025]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
      [    1.592025]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
      [    1.592025] ---[ end trace 7150b3b86da74e1e ]---
      [    1.889858] ------------[ cut here ]------------[ve_plug+0x5f/0x91()
      [    1.893848] Hardware name: H8SSL
      [    1.893848] Modules linked in:
      [    1.893848] Pid: 1, comm: swapper Tainted: G        W  2.6.29 #8
      [    1.893848] Call Trace:
      [    1.893848]  [<ffffffff8023c994>] warn_slowpath+0xd3/0xf2
      [    1.893848]  [<ffffffff805c8411>] ? trace_hardirqs_on_thunk+0x3a/0x3f
      [    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
      [    1.893848]  [<ffffffff80254245>] ? __atomic_notifier_call_chain+0x0/0xb2
      [    1.893848]  [<ffffffff805c90a3>] ? _spin_unlock_irq+0x31/0x51
      [    1.893848]  [<ffffffff805c90bf>] ? _spin_unlock_irq+0x4d/0x51
      [    1.893848]  [<ffffffff8044157d>] ? mm_make_request+0x4e/0x59
      [    1.893848]  [<ffffffff8025a70e>] ? get_lock_stats+0x34/0x5e
      [    1.893848]  [<ffffffff8025a75d>] ? put_lock_stats+0x25/0x27
      [    1.893848]  [<ffffffff80441504>] ? mm_unplug_device+0x25/0x50
      [    1.893848]  [<ffffffff803acf23>] blk_remove_plug+0x5f/0x91
      [    1.893848]  [<ffffffff8044150f>] mm_unplug_device+0x30/0x50
      [    1.893848]  [<ffffffff803ab74a>] blk_unplug+0x78/0x7d
      [    1.893848]  [<ffffffff803ab75c>] blk_backing_dev_unplug+0xd/0xf
      [    1.893848]  [<ffffffff802c853c>] block_sync_page+0x4a/0x4c
      [    1.893848]  [<ffffffff8027da1c>] sync_page+0x44/0x4d
      [    1.893848]  [<ffffffff805c66fd>] __wait_on_bit_lock+0x42/0x8a
      [    1.893848]  [<ffffffff8027d9d8>] ? sync_page+0x0/0x4d
      [    1.893848]  [<ffffffff8027d9c4>] __lock_page+0x64/0x6b
      [    1.893848]  [<ffffffff802508db>] ? wake_bit_function+0x0/0x2a
      [    1.893848]  [<ffffffff8027de4a>] read_cache_page_async+0xd4/0x134
      [    1.893848]  [<ffffffff802ceff5>] ? blkdev_readpage+0x0/0x15
      [    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.893848]  [<ffffffff8027deb8>] read_cache_page+0xe/0x45
      [    1.893848]  [<ffffffff802f5170>] read_dev_sector+0x2e/0x93
      [    1.893848]  [<ffffffff802f5f44>] adfspart_check_ICS+0x28/0x16c
      [    1.893848]  [<ffffffff8025d427>] ? trace_hardirqs_on+0xd/0xf
      [    1.893848]  [<ffffffff802f5f1c>] ? adfspart_check_ICS+0x0/0x16c
      [    1.893848]  [<ffffffff802f59c5>] rescan_partitions+0x168/0x2fb
      [    1.893848]  [<ffffffff802ceae9>] __blkdev_get+0x259/0x336
      [    1.893848]  [<ffffffff803ca1e2>] ? kobject_put+0x47/0x4b
      [    1.893848]  [<ffffffff802cebd1>] blkdev_get+0xb/0xd
      [    1.893848]  [<ffffffff802f5773>] register_disk+0xc4/0x12b
      [    1.893848]  [<ffffffff803b2a7b>] add_disk+0xc3/0x12d
      [    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.893848]  [<ffffffff808a1e73>] mm_init+0x129/0x1a5
      [    1.893848]  [<ffffffff808a1d4a>] ? mm_init+0x0/0x1a5
      [    1.893848]  [<ffffffff80209056>] _stext+0x56/0x130
      [    1.893848]  [<ffffffff80274932>] ? register_irq_proc+0xae/0xca
      [    1.893848]  [<ffffffff802f0000>] ? proc_pid_lookup+0xb4/0x18b
      [    1.893848]  [<ffffffff8087f975>] kernel_init+0x132/0x18b
      [    1.893848]  [<ffffffff8020d17a>] child_rip+0xa/0x20
      [    1.893848]  [<ffffffff8020cb40>] ? restore_args+0x0/0x30
      [    1.893848]  [<ffffffff8087f843>] ? kernel_init+0x0/0x18b
      [    1.893848]  [<ffffffff8020d170>] ? child_rip+0x0/0x20
      [    1.893848] ---[ end trace 7150b3b86da74e1f ]---
      Signed-off-by: default avatarSage Weil <sage@newdream.net>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      f3c737de
    • Jerome Marchand's avatar
      block: simplify I/O stat accounting · 42dad764
      Jerome Marchand authored
      This simplifies I/O stat accounting switching code and separates it
      completely from I/O scheduler switch code.
      
      Requests are accounted according to the state of their request queue
      at the time of the request allocation. There is no need anymore to
      flush the request queue when switching I/O accounting state.
      Signed-off-by: default avatarJerome Marchand <jmarchan@redhat.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      42dad764
    • Alexander Beregalov's avatar
      pktcdvd.h should include mempool.h · 097102c2
      Alexander Beregalov authored
      Fix this build error:
      In file included from fs/compat_ioctl.c:104:
      include/linux/pktcdvd.h:285: error: expected specifier-qualifier-list before 'mempool_t'
      Signed-off-by: default avatarAlexander Beregalov <a.beregalov@gmail.com>
      Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
      097102c2
  2. 23 Apr, 2009 6 commits
  3. 22 Apr, 2009 12 commits
    • Bartlomiej Zolnierkiewicz's avatar
      mediabay: fix build for CONFIG_BLOCK=n · 83cff839
      Bartlomiej Zolnierkiewicz authored
      On Tuesday 14 April 2009 20:31:21 Subrata Modak wrote:
      > Observed the following build error:
      > ---
      > CC      drivers/macintosh/mediabay.o
      > In file included from drivers/macintosh/mediabay.c:21:
      > include/linux/ide.h:605: error: field ‘request_sense_rq’ has incomplete
      > type
      > make[2]: *** [drivers/macintosh/mediabay.o] Error 1
      > make[1]: *** [drivers/macintosh] Error 2
      > make: *** [drivers] Error 2
      > ---
      
      mediabay shouldn't include <linux/ide.h> unconditionally so
      remove the superfluous include from mediabay.c (<asm/mediabay.h>
      will pull <linux/ide.h> in for CONFIG_BLK_DEV_IDE_PMAC=y).
      Reported-by: default avatarSubrata Modak <subrata@linux.vnet.ibm.com>
      Cc: Paul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      83cff839
    • Bruno Prémont's avatar
      ide: Stop disks on reboot for laptop which cuts power · b0aedb04
      Bruno Prémont authored
      My laptop (Acer Travelmate 660) always cuts the power when rebooting
      which causes the disk to emergency-park it's head.
      
      Add a dmi check to stop disk as for shutdown on this laptop.
      Signed-off-by: default avatarBruno Prémont <bonbons@linux-vserver.org>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      b0aedb04
    • Helge Deller's avatar
      ide-cd: fix kernel crash on hppa regression · a1f9a89c
      Helge Deller authored
      With 2.6.30-rc2 I face a kernel crash on the 32bit hppa architecture 
      due to ide-cd when udev creates the device nodes at startup:
      
      Kernel Fault: Code=26 regs=8ed34c40 (Addr=00000024)
      IASQ: 00000000 00000000 IAOQ: 1034b5ac 1034b5b0
       IIR: 4ab30048    ISR: 00000000  IOR: 00000024
       CPU:        0   CR30: 8ed34000 CR31: ffff55ff
       ORIG_R28: 00000000
       IAOQ[0]: ide_complete_rq+0x2c/0x70
       IAOQ[1]: ide_complete_rq+0x30/0x70
       RP(r2): cdrom_newpc_intr+0x178/0x46c
      Backtrace:
       [<1035c608>] cdrom_newpc_intr+0x178/0x46c
       [<1034c494>] ide_intr+0x1b0/0x214
       [<1016d284>] handle_IRQ_event+0x70/0x150
       [<1016d4b0>] __do_IRQ+0x14c/0x1cc
       [<102f7864>] superio_interrupt+0x88/0xbc
       [<1016d284>] handle_IRQ_event+0x70/0x150
       [<1016d4b0>] __do_IRQ+0x14c/0x1cc
       [<10112efc>] do_cpu_irq_mask+0x9c/0xd0
       [<10116068>] intr_return+0x0/0x4
      
      This crash seems to happen due to an uninitialized variable "rc".
      The compiler even warns about that:
        CC      drivers/ide/ide-cd.o                                                         
      /mnt/sda4/home/cvs/parisc/git-kernel/linus-linux-2.6/drivers/ide/ide-cd.c: In function `cdrom_newpc_intr':
      /mnt/sda4/home/cvs/parisc/git-kernel/linus-linux-2.6/drivers/ide/ide-cd.c:612: warning: `rc' might be used uninitialized in this function
      
      After applying the trivial patch below, which just initializes 
      the variable to zero, the kernel doesn't crash any longer:
      
      Starting the hotplug events dispatcher: udevd.
      Synthesizing the initial hotplug events...
      hda: command error: status=0x51 { DriveReady SeekComplete Error }
      hda: command error: error=0x54 <3>{ AbortedCommand LastFailedSense=0x05 }
      ide: failed opcode was: unknown
      done.
      Signed-off-by: default avatarHelge Deller <deller@gmx.de>
      Acked-by: default avatarBorislav Petkov <petkovbb@gmail.com>
      Cc: Linus <torvalds@linux-foundation.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      a1f9a89c
    • David Brownell's avatar
      palm_bk3710: UDMA performance fix · db2f38c2
      David Brownell authored
      Fix UDMA throughput bug:  tCYC averages t2CYCTYP/2, but the code
      previously assumed it was the same as t2CYCTYP.  (That is, it was
      using just one clock edge, not both.)  Move the table's type
      declaration so it's adjacent to the table, making it more clear
      what those numbers mean.
      
      On one system this change increased throughput by almost 4x: UDMA/66
      sometimes topped 23 MB/sec (on a drive known to do much better).  On
      another system it was around a 10% win (UDMA/66 up to 7+ MB/sec).
      
      The difference might be caused by the ratio between memory and IDE
      clocks.  In the system with large speedup, this was exactly 2 (as a
      workaround for a rev 1.1 silicon bug).  The other system used a more
      standard ratio of 1.63 (and rev 2.1 silicon) ... clock domain synch
      might have some issues, they're not unheard-of.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
      Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
      db2f38c2
    • Jan Kiszka's avatar
      KVM: Unregister cpufreq notifier on unload · 888d256e
      Jan Kiszka authored
      Properly unregister cpufreq notifier on onload if it was registered
      during init.
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      888d256e
    • Joerg Roedel's avatar
      KVM: x86: release time_page on vcpu destruction · 7f1ea208
      Joerg Roedel authored
      Not releasing the time_page causes a leak of that page or the compound
      page it is situated in.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      7f1ea208
    • Jan Kiszka's avatar
      KVM: Fix overlapping check for memory slots · 4cd481f6
      Jan Kiszka authored
      When checking for overlapping slots on registration of a new one, kvm
      currently also considers zero-length (ie. deleted) slots and rejects
      requests incorrectly. This finally denies user space from joining slots.
      Fix the check by skipping deleted slots and advertise this via a
      KVM_CAP_JOIN_MEMORY_REGIONS_WORKS.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      4cd481f6
    • Marcelo Tosatti's avatar
      KVM: MMU: disable global page optimization · bf47a760
      Marcelo Tosatti authored
      Complexity to fix it not worthwhile the gains, as discussed
      in http://article.gmane.org/gmane.comp.emulators.kvm.devel/28649.
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      bf47a760
    • Jes Sorensen's avatar
      KVM: ia64: fix locking order entering guest · d24d2c1c
      Jes Sorensen authored
      Reorder locking as down_read() may return with local interrupts enabled,
      which means we could go into vti_vcpu_run() with interrupts enabled.
      
      This caused random crashes on the Altix as the timer interrupt tried
      to read a memory mapped clock source, for which the TLB had not yet been
      reinstated in the exit, before ipsr was retored.
      Signed-off-by: default avatarJes Sorensen <jes@sgi.com>
      Acked-by: default avatarXiantao Zhang <xiantao.zhang@intel.com>
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      d24d2c1c
    • Avi Kivity's avatar
      KVM: MMU: Fix off-by-one calculating large page count · 99894a79
      Avi Kivity authored
      The large page initialization code concludes there are two large pages spanned
      by a slot covering 1 (small) page starting at gfn 1.  This is incorrect, and
      also results in incorrect write_count initialization in some cases (base = 1,
      npages = 513 for example).
      
      Cc: stable@kernel.org
      Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
      99894a79
    • David S. Miller's avatar
      sparc: Fix bus type probing for ESP and LE devices. · 956d039a
      David S. Miller authored
      If there is a dummy "espdma" or "ledma" parent device above ESP scsi
      or LE ethernet device nodes, we have to match the bus as SBUS.
      
      Otherwise the address and size cell counts are wrong and we don't
      calculate the final physical device resource values correctly at all.
      
      Commit 5280267c ("sparc: Fix handling
      of LANCE and ESP parent nodes in of_device.c") was meant to fix this
      problem, but that only influences the inner loop of
      build_device_resources().  We need this logic to also kick in at the
      beginning of build_device_resources() as well, when we make the first
      attempt to determine the device's immediate parent bus type for 'reg'
      property element extraction.
      
      Based almost entirely upon a patch by Friedrich Oslage.
      Tested-by: default avatarMeelis Roos <mroos@linux.ee>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      956d039a
    • Pablo Neira Ayuso's avatar
      netfilter: ctnetlink: fix gcc warning during compilation · 29fe1b48
      Pablo Neira Ayuso authored
      This patch fixes a (bogus?) gcc warning during compilation:
      
      net/netfilter/nf_conntrack_netlink.c:1234: warning: 'helpname' may be used uninitialized in this function
      net/netfilter/nf_conntrack_netlink.c:991: warning: 'helpname' may be used uninitialized in this function
      
      In fact, helpname is initialized by ctnetlink_parse_help() so
      I cannot see a way to use it without being initialized.
      Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      29fe1b48