aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-02-25Merge branch 'drm-intel-fixes' of ↵Dave Airlie1-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel into drm-fixes * 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel: drm/i915: Fix unintended recursion in ironlake_disable_rc6
2011-02-24Merge branch 'kvm-updates/2.6.38' of git://git.kernel.org/pub/scm/virt/kvm/kvmLinus Torvalds1-0/+2
* 'kvm-updates/2.6.38' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: SVM: Advance instruction pointer in dr_intercept
2011-02-24OMAP2+: clocksource: fix crash on boot when !CONFIG_OMAP_32K_TIMERPaul Walmsley1-0/+13
OMAP2+ kernels built without CONFIG_OMAP_32K_TIMER crash on boot after the 2.6.38 sched_clock changes: [ 0.000000] OMAP clockevent source: GPTIMER1 at 13000000 Hz [ 0.000000] Unable to handle kernel NULL pointer dereference at virtual address 00000000 [ 0.000000] pgd = c0004000 [ 0.000000] [00000000] *pgd=00000000 [ 0.000000] Internal error: Oops: 80000005 [#1] SMP [ 0.000000] last sysfs file: [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 Not tainted (2.6.38-rc5-00057-g04aa67d #152) [ 0.000000] PC is at 0x0 [ 0.000000] LR is at sched_clock_poll+0x2c/0x3c Without CONFIG_OMAP_32K_TIMER, the kernel has an clockevent and clocksource resolution about three orders of magnitude higher than with CONFIG_OMAP_32K_TIMER set. The tradeoff is that the lowest power consumption states are not available. Fix by calling init_sched_clock() from the GPTIMER clocksource init code. Signed-off-by: Paul Walmsley <[email protected]> Signed-off-by: Tony Lindgren <[email protected]>
2011-02-24MAINTAINERS: Update email addressHerton Ronaldo Krzesinski1-2/+2
Signed-off-by: Herton Ronaldo Krzesinski <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-02-24x86 quirk: Fix polarity for IRQ0 pin2 override on SB800 systemsAndreas Herrmann3-13/+18
On some SB800 systems polarity for IOAPIC pin2 is wrongly specified as low active by BIOS. This caused system hangs after resume from S3 when HPET was used in one-shot mode on such systems because a timer interrupt was missed (HPET signal is high active). For more details see: http://marc.info/?l=linux-kernel&m=129623757413868 Tested-by: Manoj Iyer <[email protected]> Tested-by: Andre Przywara <[email protected]> Signed-off-by: Andreas Herrmann <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: [email protected] # 37.x, 32.x LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2011-02-24usb: musb: core: set has_tt flagFelipe Balbi1-0/+1
MUSB is a non-standard host implementation which can handle all speeds with the same core. We need to set has_tt flag after commit d199c96d41d80a567493e12b8e96ea056a1350c1 (USB: prevent buggy hubs from crashing the USB stack) in order for MUSB HCD to continue working. Signed-off-by: Felipe Balbi <[email protected]> Cc: stable <[email protected]> Cc: Alan Stern <[email protected]> Tested-by: Michael Jones <[email protected]> Tested-by: Alexander Holler <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2011-02-24PM: Make ACPI wakeup from S5 work again when CONFIG_PM_SLEEP is unsetRafael J. Wysocki2-11/+16
Commit 074037e (PM / Wakeup: Introduce wakeup source objects and event statistics (v3)) caused ACPI wakeup to only work if CONFIG_PM_SLEEP is set, but it also worked for CONFIG_PM_SLEEP unset before. This can be fixed by making device_set_wakeup_enable(), device_init_wakeup() and device_may_wakeup() work in the same way as before commit 074037e when CONFIG_PM_SLEEP is unset. Reported-and-tested-by: Justin Maggard <[email protected]> Cc: [email protected] Signed-off-by: Rafael J. Wysocki <[email protected]>
2011-02-24drm/i915: Fix unintended recursion in ironlake_disable_rc6Chris Wilson1-1/+1
After disabling, we're meant to teardown the bo used for the contexts, not recurse into ourselves again and preventing module unload. Reported-and-tested-by: Ben Widawsky <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-02-24ALSA: hda - Add support for new IDT 92HD98 and 92HD99 codecsVitaliy Kulikov1-3/+12
Also fix number of 92HD87 pins to exclude invalid pins. Signed-off-by: Vitaliy Kulikov <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-02-24block: bd_link_disk_holder() should hold on to holder_dirTejun Heo1-0/+6
The new implementation of bd_link_disk_holder() added by 49731baa41d (block: restore multiple bd_link_disk_holder() support) didn't get an extra reference for the holder_dir kobject of the slave bdev; however, bdev kills holder_dir on removal, not release, so if the slave bdev is removed while there are holder links, the holder_dir will be destroyed while there still are holder links, which leads to oops later when bd_unlink_disk_order() tries to remove those links. Make bd_link_disk_holder() grab an extra reference for the slave's holder_dir and put it in bd_unlink_disk_holder(). Signed-off-by: Tejun Heo <[email protected]> Reported-by: "Hawrylewicz Czarnowski, Przemyslaw" <[email protected]> Tested-by: "Hawrylewicz Czarnowski, Przemyslaw" <[email protected]> Cc: Neil Brown <[email protected]> Cc: Jens Axboe <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-02-24mm: fix refcounting in swaponMiklos Szeredi1-1/+1
Grab a reference to bdev before calling blkdev_get(), which expects the refcount to be already incremented and either returns success or decrements the refcount and returns an error. The bug was introduced by e525fd89 (block: make blkdev_get/put() handle exclusive access), which didn't take into account this behavior of blkdev_get(). Acked-by: Tejun Heo <[email protected]> Signed-off-by: Miklos Szeredi <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-02-24block: fix refcounting in BLKBSZSETMiklos Szeredi1-3/+5
Adam Kovari and others reported that disconnecting an USB drive with an ntfs-3g filesystem would cause "kernel BUG at fs/inode.c:1421!" to be triggered. The BUG could be traced back to ioctl(BLKBSZSET), which would erroneously decrement the refcount on the bdev. This is because blkdev_get() expects the refcount to be already incremented and either returns success or decrements the refcount and returns an error. The bug was introduced by e525fd89 (block: make blkdev_get/put() handle exclusive access), which didn't take into account this behavior of blkdev_get(). This fixes https://bugzilla.kernel.org/show_bug.cgi?id=29202 (and likely 29792 too) Reported-by: Adam Kovari <[email protected]> Acked-by: Tejun Heo <[email protected]> Signed-off-by: Miklos Szeredi <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-02-24Merge branch 'for-linus' of ↵Linus Torvalds1-1/+1
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: Unlock vfsmount_lock in do_umount
2011-02-24x86/mrst: Fix apb timer rating when lapic timer is usedJacob Pan1-1/+1
Need to adjust the clockevent device rating for the structure that will be registered with clockevent system instead of the temporary structure. Without this fix, APB timer rating will be higher than LAPIC timer such that it can not be released later to be used as the broadcast timer. Signed-off-by: Jacob Pan <[email protected]> Cc: Arjan van de Ven <[email protected]> Cc: Alan Cox <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: John Stultz <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2011-02-24Unlock vfsmount_lock in do_umountJ. R. Okajima1-1/+1
By the commit b3e19d9 2011-01-07 fs: scale mntget/mntput vfsmount_lock was introduced around testing mnt_count. Fix the mis-typed 'unlock' Signed-off-by: J. R. Okajima <[email protected]> Acked-by: Al Viro <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-02-24md: Fix - again - partition detection when array becomes activeNeilBrown2-1/+23
Revert b821eaa572fd737faaf6928ba046e571526c36c6 and f3b99be19ded511a1bf05a148276239d9f13eefa When I wrote the first of these I had a wrong idea about the lifetime of 'struct block_device'. It can disappear at any time that the block device is not open if it falls out of the inode cache. So relying on the 'size' recorded with it to detect when the device size has changed and so we need to revalidate, is wrong. Rather, we really do need the 'changed' attribute stored directly in the mddev and set/tested as appropriate. Without this patch, a sequence of: mknod / open / close / unlink (which can cause a block_device to be created and then destroyed) will result in a rescan of the partition table and consequence removal and addition of partitions. Several of these in a row can get udev racing to create and unlink and other code can get confused. With the patch, the rescan is only performed when needed and so there are no races. This is suitable for any stable kernel from 2.6.35. Reported-by: "Wojcik, Krzysztof" <[email protected]> Signed-off-by: NeilBrown <[email protected]> Cc: [email protected]
2011-02-24Fix over-zealous flush_disk when changing device size.NeilBrown6-11/+18
There are two cases when we call flush_disk. In one, the device has disappeared (check_disk_change) so any data will hold becomes irrelevant. In the oter, the device has changed size (check_disk_size_change) so data we hold may be irrelevant. In both cases it makes sense to discard any 'clean' buffers, so they will be read back from the device if needed. In the former case it makes sense to discard 'dirty' buffers as there will never be anywhere safe to write the data. In the second case it *does*not* make sense to discard dirty buffers as that will lead to file system corruption when you simply enlarge the containing devices. flush_disk calls __invalidate_devices. __invalidate_device calls both invalidate_inodes and invalidate_bdev. invalidate_inodes *does* discard I_DIRTY inodes and this does lead to fs corruption. invalidate_bev *does*not* discard dirty pages, but I don't really care about that at present. So this patch adds a flag to __invalidate_device (calling it __invalidate_device2) to indicate whether dirty buffers should be killed, and this is passed to invalidate_inodes which can choose to skip dirty inodes. flusk_disk then passes true from check_disk_change and false from check_disk_size_change. dm avoids tripping over this problem by calling i_size_write directly rathher than using check_disk_size_change. md does use check_disk_size_change and so is affected. This regression was introduced by commit 608aeef17a which causes check_disk_size_change to call flush_disk, so it is suitable for any kernel since 2.6.27. Cc: [email protected] Acked-by: Jeff Moyer <[email protected]> Cc: Andrew Patterson <[email protected]> Cc: Jens Axboe <[email protected]> Signed-off-by: NeilBrown <[email protected]>
2011-02-23mm: fix possible cause of a page_mapped BUGHugh Dickins1-3/+1
Robert Swiecki reported a BUG_ON(page_mapped) from a fuzzer, punching a hole with madvise(,, MADV_REMOVE). That path is under mutex, and cannot be explained by lack of serialization in unmap_mapping_range(). Reviewing the code, I found one place where vm_truncate_count handling should have been updated, when I switched at the last minute from one way of managing the restart_addr to another: mremap move changes the virtual addresses, so it ought to adjust the restart_addr. But rather than exporting the notion of restart_addr from memory.c, or converting to restart_pgoff throughout, simply reset vm_truncate_count to 0 to force a rescan if mremap move races with preempted truncation. We have no confirmation that this fixes Robert's BUG, but it is a fix that's worth making anyway. Signed-off-by: Hugh Dickins <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-02-23mm: prevent concurrent unmap_mapping_range() on the same inodeMiklos Szeredi10-38/+23
Michael Leun reported that running parallel opens on a fuse filesystem can trigger a "kernel BUG at mm/truncate.c:475" Gurudas Pai reported the same bug on NFS. The reason is, unmap_mapping_range() is not prepared for more than one concurrent invocation per inode. For example: thread1: going through a big range, stops in the middle of a vma and stores the restart address in vm_truncate_count. thread2: comes in with a small (e.g. single page) unmap request on the same vma, somewhere before restart_address, finds that the vma was already unmapped up to the restart address and happily returns without doing anything. Another scenario would be two big unmap requests, both having to restart the unmapping and each one setting vm_truncate_count to its own value. This could go on forever without any of them being able to finish. Truncate and hole punching already serialize with i_mutex. Other callers of unmap_mapping_range() do not, and it's difficult to get i_mutex protection for all callers. In particular ->d_revalidate(), which calls invalidate_inode_pages2_range() in fuse, may be called with or without i_mutex. This patch adds a new mutex to 'struct address_space' to prevent running multiple concurrent unmap_mapping_range() on the same mapping. [ We'll hopefully get rid of all this with the upcoming mm preemptibility series by Peter Zijlstra, the "mm: Remove i_mmap_mutex lockbreak" patch in particular. But that is for 2.6.39 ] Signed-off-by: Miklos Szeredi <[email protected]> Reported-by: Michael Leun <[email protected]> Reported-by: Gurudas Pai <[email protected]> Tested-by: Gurudas Pai <[email protected]> Acked-by: Hugh Dickins <[email protected]> Cc: [email protected] Signed-off-by: Linus Torvalds <[email protected]>
2011-02-23Revert "Bluetooth: Enable USB autosuspend by default on btusb"Linus Torvalds1-2/+0
This reverts commit 556ea928f78a390fe16ae584e6433dff304d3014. Jeff Chua reports that it can cause some bluetooth devices (he mentions an Bluetooth Intermec scanner) to just stop responding after a while with messages like [ 4533.361959] btusb 8-1:1.0: no reset_resume for driver btusb? [ 4533.361964] btusb 8-1:1.1: no reset_resume for driver btusb? from the kernel. See also https://bugzilla.kernel.org/show_bug.cgi?id=26182 for other reports. Reported-by: Jeff Chua <[email protected]> Reported-by: Andrew Meakovski <[email protected]> Reported-by: Jim Faulkner <[email protected]> Acked-by: Greg KH <[email protected]> Acked-by: Matthew Garrett <[email protected]> Acked-by: Gustavo F. Padovan <[email protected]> Cc: [email protected] (for 2.6.37) Signed-off-by: Linus Torvalds <[email protected]>
2011-02-24Merge branch 'drm-intel-fixes' of ↵Dave Airlie5-46/+126
git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel into drm-fixes * 'drm-intel-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ickle/drm-intel: drm/i915: fix corruptions on i8xx due to relaxed fencing drm/i915: skip FDI & PCH enabling for DP_A agp/intel: Experiment with a 855GM GWB bit drm/i915: don't enable FDI & transcoder interrupts after all drm/i915: Ignore a hung GPU when flushing the framebuffer prior to a switch
2011-02-24drm/i915: fix corruptions on i8xx due to relaxed fencingDaniel Vetter1-1/+15
It looks like gen2 has a peculiar interleaved 2-row inter-tile layout. Probably inherited from i81x which had 2kb tiles (which naturally fit an even-number-of-tile-rows scheme to fit onto 4kb pages). There is no other mention of this in any docs (also not in the Intel internal documention according to Chris Wilson). Problem manifests itself in corruptions in the second half of the last tile row (if the bo has an odd number of tiles). Which can only happen with relaxed tiling (introduced in a00b10c360b35d6431a9). So reject set_tiling calls that don't satisfy this constrain to prevent broken userspace from causing havoc. While at it, also check the size for newer chipsets. LKML: https://lkml.org/lkml/2011/2/19/5 Reported-by: Indan Zupancic <[email protected]> Tested-by: Indan Zupancic <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Signed-off-by: Chris Wilson <[email protected]>
2011-02-23Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds31-170/+258
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (33 commits) Added support for usb ethernet (0x0fe6, 0x9700) r8169: fix RTL8168DP power off issue. r8169: correct settings of rtl8102e. r8169: fix incorrect args to oob notify. DM9000B: Fix PHY power for network down/up DM9000B: Fix reg_save after spin_lock in dm9000_timeout net_sched: long word align struct qdisc_skb_cb data sfc: lower stack usage in efx_ethtool_self_test bridge: Use IPv6 link-local address for multicast listener queries bridge: Fix MLD queries' ethernet source address bridge: Allow mcast snooping for transient link local addresses too ipv6: Add IPv6 multicast address flag defines bridge: Add missing ntohs()s for MLDv2 report parsing bridge: Fix IPv6 multicast snooping by correcting offset in MLDv2 report bridge: Fix IPv6 multicast snooping by storing correct protocol type p54pci: update receive dma buffers before and after processing fix cfg80211_wext_siwfreq lock ordering... rt2x00: Fix WPA TKIP Michael MIC failures. ath5k: Fix fast channel switching tcp: undo_retrans counter fixes ...
2011-02-23Merge branch 'drm-fixes' of ↵Linus Torvalds5-19/+27
git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: amd64-agp: fix crash at second module load drm/radeon: fix regression with AA resolve checking drm: drop commented out code and preceding comment drm/vblank: Enable precise vblank timestamps for interlaced and doublescan modes. drm/vblank: Use memory barriers optimized for atomic_t instead of generics. drm/vblank: Use abs64(diff_ns) for s64 diff_ns instead of abs(diff_ns) drm/radeon/kms: align height of fb allocation. Revert "drm/radeon/kms: switch back to min->max pll post divider iteration"
2011-02-23Merge branch 'r8169-davem' of ↵David S. Miller1-19/+23
git://git.kernel.org/pub/scm/linux/kernel/git/romieu/netdev-2.6
2011-02-23Merge branch 'for-linus' of ↵Linus Torvalds5-5/+85
git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: serio/gameport - use 'long' system workqueue Input: synaptics - document 0x0c query Input: tegra-kbc - add function keymap
2011-02-23Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfsLinus Torvalds2-0/+5
* 'for-linus' of git://oss.sgi.com/xfs/xfs: xfs: check if device support discard in xfs_ioc_trim() xfs: prevent leaking uninitialized stack memory in FSGEOMETRY_V1
2011-02-23Added support for usb ethernet (0x0fe6, 0x9700)Shahar Havivi1-0/+4
The device is very similar to (0x0fe6, 0x8101), And works well with dm9601 driver. Signed-off-by: Shahar Havivi <[email protected]> Acked-by: Peter Korsgaard <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-02-23r8169: fix RTL8168DP power off issue.Hayes Wang1-3/+14
- fix the RTL8111DP turn off the power when DASH is enabled. - RTL_GIGA_MAC_VER_27 must wait for tx finish before reset. Signed-off-by: Hayes Wang <[email protected]> Acked-by: Francois Romieu <[email protected]>
2011-02-23r8169: correct settings of rtl8102e.Hayes Wang1-14/+6
Adjust and remove certain settings of RTL8102E which are for previous chips. Signed-off-by: Hayes Wang <[email protected]> Acked-off-by: Francois Romieu <[email protected]>
2011-02-23r8169: fix incorrect args to oob notify.Hayes Wang1-2/+3
It results in the wrong point address and influences RTL8168DP. Signed-off-by: Hayes Wang <[email protected]> Acked-by: Francois Romieu <[email protected]>
2011-02-23DM9000B: Fix PHY power for network down/upHenry Nestler1-3/+4
DM9000 revision B needs 1 ms delay after PHY power-on. PHY must be powered on by writing 0 into register DM9000_GPR before all other settings will change (see Davicom spec and example code). Remember, that register DM9000_GPR was not changed by reset sequence. Without this fix the FIFO is out of sync and sends wrong data after sequence of "ifconfig ethX down ; ifconfig ethX up". Signed-off-by: David S. Miller <[email protected]>
2011-02-23DM9000B: Fix reg_save after spin_lock in dm9000_timeoutHenry Nestler1-1/+1
The spin_lock should hold before reading register. Signed-off-by: David S. Miller <[email protected]>
2011-02-23net_sched: long word align struct qdisc_skb_cb dataEric Dumazet1-1/+1
netem_skb_cb() does : return (struct netem_skb_cb *)qdisc_skb_cb(skb)->data; Unfortunatly struct qdisc_skb_cb data is not long word aligned, so access to psched_time_t time_to_send uses a non aligned access. Signed-off-by: Eric Dumazet <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2011-02-23Btrfs: fix fiemap bugs with delallocChris Mason3-42/+224
The Btrfs fiemap code wasn't properly returning delalloc extents, so applications that trust fiemap to decide if there are holes in the file see holes instead of delalloc. This reworks the btrfs fiemap code, adding a get_extent helper that searches for delalloc ranges and also adding a helper for extent_fiemap that skips past holes in the file. Signed-off-by: Chris Mason <[email protected]>
2011-02-23Input: serio/gameport - use 'long' system workqueueDmitry Torokhov2-2/+2
Commit 8ee294cd9def0004887da7f44b80563493b0a097 converted serio subsystem event handling from using a dedicated thread to using common workqueue. Unfortunately, this regressed our boot times, due to the fact that serio jobs take long time to execute. While the new concurrency managed workqueue code manages long-playing works just fine and schedules additional workers as needed, such works wreck havoc among remaining users of flush_scheduled_work(). To solve this problem let's move serio/gameport works from system_wq to system_long_wq which nobody tries to flush. Reported-and-tested-by: Hernando Torque <[email protected]> Acked-by: Tejun Heo <[email protected]> Signed-off-by: Dmitry Torokhov <[email protected]>
2011-02-23Input: synaptics - document 0x0c queryDmitry Torokhov1-0/+23
Since Synaptics technical writers department is a bit slow releasing updated Synaptics interface guide, let's add some new bits (with their blessing) to the code so that they don't get lost. Signed-off-by: Dmitry Torokhov <[email protected]>
2011-02-23Drop redundant __param section for CRISv32.Jesper Nilsson1-5/+0
The __param section is already brought in by RODATA above. Signed-off-by: Jesper Nilsson <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2011-02-23ALSA: HDA: Add ideapad quirk for two Dell machinesDavid Henningsson1-0/+2
These two Dell machines have been reported working well with the ideapad model. BugLink: http://bugs.launchpad.net/bugs/723676 Cc: [email protected] Tested-by: David Chen <[email protected]> Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-02-23ALSA: HDA: Add a new Conexant codec 506e (20590)David Henningsson1-0/+3
Conexant 506e/20590 has the same graph as the rest of the 5066 family. BugLink: http://bugs.launchpad.net/bugs/723672 Cc: [email protected] Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-02-23amd64-agp: fix crash at second module loadFlorian Mickler1-2/+7
The module forgot to sometimes unregister some resources. This fixes Bug #22882. [Patch updated to 2.6.38-rc3 by Randy Dunlap.] Tested-by: Randy Dunlap <[email protected]> Signed-off-by: Florian Mickler <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
2011-02-23ALSA: usb-audio: fix oops due to cleanup race when disconnectingTakashi Iwai3-2/+10
When a USB audio device is disconnected, snd_usb_audio_disconnect() kills all audio URBs. At the same time, the application, after being notified of the disconnection, might close the device, in which case ALSA calls the .hw_free callback, which should free the URBs too. Commit de1b8b93a0ba "[ALSA] Fix hang-up at disconnection of usb-audio" prevented snd_usb_hw_free() from freeing the URBs to avoid a hang that resulted from this race, but this introduced another race because the URB callbacks could now be executed after snd_usb_hw_free() has returned, and try to access already freed data. Fix the first race by introducing a mutex to serialize the disconnect callback and all PCM callbacks that manage URBs (hw_free and hw_params). Reported-and-tested-by: Pierre-Louis Bossart <[email protected]> Cc: <[email protected]> [CL: also serialize hw_params callback] Signed-off-by: Clemens Ladisch <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-02-22OMAP2/3: clock: fix fint calculation for DPLL_FREQSELJohn Ogness1-1/+1
In OMAP35X TRM Rev 2010-05 Figure 7-18 "DPLL With EMI Reduction Feature", it is shown that the internal frequency is calculated by CLK_IN/(N+1). However, the value passed to _dpll_test_fint() is already "N+1" since Linux is using the values to divide by. In the technical reference manual, "N" is referring to the divider's register value (0-127). During power management testing, it was observed that programming the wrong jitter correction value can cause the system to become unstable and eventually crash. Signed-off-by: John Ogness <[email protected]> [[email protected]: added second paragraph to commit message] Signed-off-by: Paul Walmsley <[email protected]>
2011-02-22Merge branch 'for-2639-rc4/i2c-fixes' of git://git.fluff.org/bjdooks/linuxLinus Torvalds2-2/+35
* 'for-2639-rc4/i2c-fixes' of git://git.fluff.org/bjdooks/linux: i2c-omap: fixup commit cb527ede1bf6ff2008a025606f25344b8ed7b4ac whitespace i2c-omap: Double clear of ARDY status in IRQ handler i2c-omap: fix build for !CONFIG_SUSPEND i2c-omap: fix static suspend vs. runtime suspend i2c-stu300: make sure adapter-name is terminated
2011-02-22USB: xhci: mark local functions as staticDmitry Torokhov3-8/+8
Functions that are not used outsde of the module they are defined should be marked as static. Signed-off-by: Dmitry Torokhov <[email protected]> Signed-off-by: Sarah Sharp <[email protected]>
2011-02-22Merge branch 'usb-linus' of ↵Linus Torvalds6-14/+42
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 * 'usb-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: Revert "USB: Reset USB 3.0 devices on (re)discovery" USB: musb: omap2430: fix kernel panic on reboot sierra: add new ID for Airprime/Sierra USB IP modem USB: serial/usb_wwan, fix tty NULL dereference USB: Reset USB 3.0 devices on (re)discovery USB: Add quirk for Samsung Android phone modem USB: Add Samsung SGH-I500/Android modem ID switch to visor driver USB: add quirks entry for Keytouch QWERTY Panel usb: musb: omap2430: fix kernel panic on reboot usb: musb: fix build breakage
2011-02-23i2c-omap: fixup commit cb527ede1bf6ff2008a025606f25344b8ed7b4ac whitespaceBen Dooks1-2/+2
Fixup the whitespace error noticed in cb527ede1bf6ff2008a025606f25344b8ed7b4ac Signed-off-by: Ben Dooks <[email protected]>
2011-02-23i2c-omap: Double clear of ARDY status in IRQ handlerRichard woodruff1-1/+5
This errata occurs when the ARDY interrupt generation is enabled. At the begining of every new transaction the ARDY interrupt is cleared. On continuous i2c transactions where after clearing the ARDY bit from I2C_STAT register (clearing the interrupt), the IRQ line is reasserted and the I2C_STAT[ARDY] bit set again on 1. In fact, the ARDY status bit is not cleared at the write access to I2C_STAT[ARDY] and only the IRQ line is deasserted and then reasserted. This is not captured in the usual errata documents. The workaround is to have a double clear of ARDY status in irq handler. Signed-off-by: Richard woodruff <[email protected]> Signed-off-by: Keerthy <[email protected]> Signed-off-by: Ben Dooks <[email protected]>
2011-02-23i2c-omap: fix build for !CONFIG_SUSPENDBalaji T K1-2/+3
fix the build break when !CONFIG_SUSPEND drivers/i2c/busses/i2c-omap.c:1173: error: lvalue required as unary '&' operand make[3]: *** [drivers/i2c/busses/i2c-omap.o] Error 1 make[2]: *** [drivers/i2c/busses] Error 2 make[1]: *** [drivers/i2c] Error 2 make: *** [drivers] Error 2 Signed-off-by: Balaji T K <[email protected]> Signed-off-by: Ben Dooks <[email protected]>
2011-02-23drm/radeon: fix regression with AA resolve checkingDave Airlie1-1/+1
Some userspaces can emit a whole packet without disabling AA resolve by the looks of it, so we have to deal with them. Signed-off-by: Dave Airlie <[email protected]> Tested-by: Jorg Otte <[email protected]>