aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-05-21tty: mxser: fix usage of opmode_ioaddrMatwey V. Kornilov1-2/+9
mxser_port->opmode_ioaddr is initialized only for MOXA_MUST_MU860_HWID chips, but no precautions have been undertaken to prevent reading and writing to undefined port number. Signed-off-by: Matwey V. Kornilov <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21serial: 8250_dw: add ACPI ID for Intel BayTrailHeikki Krogerus1-0/+1
This is the same controller as on Intel Lynxpoint but the ACPI ID is different. Signed-off-by: Heikki Krogerus <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21klist: del waiter from klist_remove_waiters before wakeup waitting processwang, biao1-1/+1
There is a race between klist_remove and klist_release. klist_remove uses a local var waiter saved on stack. When klist_release calls wake_up_process(waiter->process) to wake up the waiter, waiter might run immediately and reuse the stack. Then, klist_release calls list_del(&waiter->list) to change previous wait data and cause prior waiter thread corrupt. The patch fixes it against kernel 3.9. Signed-off-by: wang, biao <[email protected]> Acked-by: Peter Zijlstra <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21ttyprintk: Fix NULL pointer deref by setting tty_port ops after initializing ↵Darrick J. Wong1-1/+1
port tty_port_init() zeroes out the tty port, which means that we have to set the ops pointer /after/, not before this call. Otherwise, tty_port_open will crash when it tries to deref ops, which is now a NULL pointer. Signed-off-by: Darrick J. Wong <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21uio: UIO_DMEM_GENIRQ should depend on HAS_DMAGeert Uytterhoeven1-0/+1
If NO_DMA=y: drivers/built-in.o: In function `uio_dmem_genirq_release': drivers/uio/uio_dmem_genirq.c:95: undefined reference to `dma_free_coherent' drivers/built-in.o: In function `uio_dmem_genirq_open': drivers/uio/uio_dmem_genirq.c:61: undefined reference to `dma_alloc_coherent' Signed-off-by: Geert Uytterhoeven <[email protected]> Cc: Hans J. Koch <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21MAINTAINERS: update Hyper-V file listHaiyang Zhang1-1/+8
Signed-off-by: Haiyang Zhang <[email protected]> Reviewed-by: K. Y. Srinivasan <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21mei: bus: Reset event_cb when disabling a deviceSamuel Ortiz1-0/+2
After cancelling all reads from the disable hook, we need to reset the event_cb pointer as well or else we won't be able to set a new one up when re-enabling the device. Acked-by: Tomas Winkler <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21Drivers: hv: Fix a bug in get_vp_index()K. Y. Srinivasan1-1/+1
Linux' notion of cpuid is different from the Host's notion of CPUID. In the call to bind the channel interrupts, we should use the host's notion of CPU Ids. Fix this bug. Signed-off-by: K. Y. Srinivasan <[email protected]> Cc: Stable <[email protected]> (V3.9) Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21mei: fix out of array access to me clients arrayTomas Winkler1-9/+8
The patch 9f81abdac362: "mei: implement mei_cl_connect function" from Jan 8, 2013, leads to the following static checker warning: "drivers/misc/mei/main.c:522 mei_ioctl_connect_client() warn: check 'dev->me_clients[]' for negative offsets (-2)" Reported-by: Dan Carpenter <[email protected]> Signed-off-by: Tomas Winkler <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21Merge branch 'for-linus' of ↵Linus Torvalds13-31/+67
git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 update from Martin Schwidefsky: "An additional sysfs attribute for channel paths and a couple of bux fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/pgtable: fix ipte notify bit s390/xpram: mark xpram as non-rotational s390/smp: fix cpu re-scan vs. cpu state s390/cio: add channel ID sysfs attribute s390/ftrace: fix mcount adjustment s390: fix gmap_ipte_notifier vs. software dirty pages s390: disable pfmf for clear page instruction s390/disassembler: prevent endless loop in print_fn_code() s390: remove non existent reference to GENERIC_KERNEL_THREAD
2013-05-21driver core: print sysfs attribute name when warning about bogus permissions[email protected]1-2/+4
Make it obvious to see what attribute is using bogus permissions. Signed-off-by: Dave Young <[email protected]> Acked-by: Felipe Balbi <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21driver core: export subsys_virtual_registerGreg Kroah-Hartman1-0/+1
Modules want to call this function, so it needs to be exported. Reported-by: Daniel Mack <[email protected]> Cc: Kay Sievers <[email protected]> Cc: Tejun Heo <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-21ARM: smp: Drop RCU_NONIDLE usage in cpu_die()Stephen Boyd1-1/+1
Before f7b861b7a6d9 ("arm: Use generic idle loop") ARM would kill the CPU within the rcu idle section. Now that the rcu_idle_enter()/exit() pair have been pushed lower down in the idle loop this is no longer true and so using RCU_NONIDLE here is no longer necessary and also harmful because RCU is not actually idle at this point. Cc: Russell King <[email protected]> Acked-by: Paul E. McKenney <[email protected]> Signed-off-by: Stephen Boyd <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2013-05-21Merge branch 'drm-radeon-sun-hainan' of ↵Linus Torvalds9-92/+362
git://people.freedesktop.org/~airlied/linux Pull radeon sun/hainan support from Dave Airlie: "Since I know its outside the merge window, but since this is new hw I thought I'd try and provoke the new hw exception, it just fills in the blanks in the driver for the new AMD sun and hainan chipsets." * 'drm-radeon-sun-hainan' of git://people.freedesktop.org/~airlied/linux: drm/radeon: add Hainan pci ids drm/radeon: add golden register settings for Hainan (v2) drm/radeon: sun/hainan chips do not have UVD (v2) drm/radeon: track which asics have UVD drm/radeon: radeon-asic updates for Hainan drm/radeon: fill in ucode loading support for Hainan drm/radeon: don't touch DCE or VGA regs on Hainan (v3) drm/radeon: fill in GPU init for Hainan (v2) drm/radeon: add chip family for Hainan
2013-05-21Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linuxLinus Torvalds15-41/+59
Pull DRM fixes from Dave Airlie: "This is just a set of nouveau and radeon fixes, the nouveau ones fix some suspend/resume regressions since use of copy engines and some fixes for Z compression on some newer chipsets." * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: drm/radeon/dce2: use 10khz units for audio dto calculation drm/radeon: Fix VRAM size calculation for VRAM >= 4GB drm/radeon: Remove superfluous variable drm/nouveau: ensure channels are stopped before saving fences for suspend drm/nv50/fifo: prevent races between clients updating playlists drm/nvc0/fifo: prevent CHAN_TABLE_ERROR:CHANNEL_PENDING on fifo fini drm/nvc0/fifo: prevent races between clients updating playlists drm/nve0/fifo: prevent races between clients updating playlists drm/nve0/ltcg: poke the partition count into yet another register drm/nvc0/ltcg: fix handling of disabled partitions drm/nvc0/ce: disable ce1 on a number of chipsets drm/nouveau/bios: fix thinko in ZM_MASK_ADD opcode drm/nouveau: fix build with nv50->nvc0
2013-05-21amd64_edac: Fix bogus sysfs file permissionsBorislav Petkov1-2/+2
Fix yet another issue caught by 8f46baaa7ec6c ("base: core: WARN() about bogus permissions on device attributes"). Signed-off-by: Borislav Petkov <[email protected]>
2013-05-20ARM: tegra: defconfig fixesAlexandre Courbot1-1/+2
The AK8975 Kconfig option was renamed during the 3.10 merge window. Adjust tegra_defconfig to enable the new name, so it's not missing useful features. Tegra DRM support used to be enabled in the default Tegra configuration, but it now depends on CONFIG_TEGRA_HOST1X which is disabled by default. Enable CONFIG_TEGRA_HOST1X so that DRM support is compiled in again. Signed-off-by: Alexandre Courbot <[email protected]> [swarren, squashed Alex's and my changes together] Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2013-05-20ARM: nomadik: fix IRQ assignment for SMC ethernetLinus Walleij1-3/+9
The assignment of IRQ for the SMC91x ethernet adapter had two problems making it non-working: - It was not put into the ethernet device node. Let's do this by using the board-specific overlay, so we can make other overlays on other Nomadik boards. - The IRQ number was actually completely wrong, this was the number for NHK8815, not S8815. After this ethernet starts working on the USB S8815. Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2013-05-20Merge tag 'ux500-arm-soc-v3.10-fixes' of ↵Olof Johansson5-11/+10
git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into fixes From Linus Walleij, some ux500 fixes for the v3.10-rc series: - Fixes up the debug UART - Fix dangerous platform data double-assignment - Fix auxdata for the ethernet device - Select REGULATOR to satisfy Kconfig * tag 'ux500-arm-soc-v3.10-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: ux500: select REGULATOR ARM: ux500: Provide device enumeration number suffix for SMSC911x ARM: ux500: Fix incorrect DEBUG UART virtual addresses ARM: ux500: Remove duplicated assignment of ab8500_platdata Signed-off-by: Olof Johansson <[email protected]>
2013-05-20Merge tag 'imx-fixes-3.10' of git://git.linaro.org/people/shawnguo/linux-2.6 ↵Olof Johansson3-5/+32
into fixes From Shawn Guo, imx fixes for 3.10: - A few imx6 clock fixes. Nothing is extremely important, but since we're still in early -rc, I send them for 3.10 inclusion. - Having bootloader handle ARM errata, we will need to replicate the diagnostic register of boot cpu into secondary cores, since bootloader only sets up boot cpu. Otherwise, errata workaround simply does not work. * tag 'imx-fixes-3.10' of git://git.linaro.org/people/shawnguo/linux-2.6: ARM: imx: fix typo in gpu3d_shader_sels ARM: imx: replicate the diagnostic register of boot cpu into secondary cores ARM i.MX6: correct MLB clock configuration ARM i.MX6q: Fix periph_clk2_sel and periph2_clk2_sel clocks Signed-off-by: Olof Johansson <[email protected]>
2013-05-20Merge tag 'fixes-3.10-2' of git://git.infradead.org/users/jcooper/linux into ↵Olof Johansson8-29/+15
fixes From Jason Cooper, mvebu fixes for v3.10 (round 2): - mvebu (and orion SoCs) - remove init_dma_coherent_pool_size() - mvebu - fix ranges DT property - fix DT reg value for L2 cache - select ARCH_REQUIRE_GPIOLIB - orion legacy - fix num_resources and id for ge10 and ge11 * tag 'fixes-3.10-2' of git://git.infradead.org/users/jcooper/linux: ARM: dts: mvebu: Fix wrong the address reg value for the L2-cache node ARM: plat-orion: Fix num_resources and id for ge10 and ge11 arm: mvebu: fix the 'ranges' property to handle PCIe ARM: mvebu: select ARCH_REQUIRE_GPIOLIB for mvebu platform ARM: mvebu: Fix ranges entry on XP GP board ARM: Orion: Remove redundant init_dma_coherent_pool_size() Signed-off-by: Olof Johansson <[email protected]>
2013-05-20Merge tag 'omap-for-v3.10-rc1/fixes' of ↵Olof Johansson5-5/+27
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes From Tony Lindgren, fixes for omaps: - a section mismatch fix for hwmod - boot fix for omap2plus_defconfig for omap2 - musb interrupt fix when using device tree - am33xx clock fix that I missed earlier somehow - omap1 dma return code error fix * tag 'omap-for-v3.10-rc1/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: AM33XX: Add missing .clkdm_name to clkdiv32k_ick clock ARM: OMAP2+: Add missing CONFIG_ARCH_MULTI_V6=y to omap2plus_defconfig ARM: OMAP: fix error return code in omap1_system_dma_init() ARM: OMAP: fix __init section mismatch for _enable_preprogram ARM: dts: Fix musb interrupt for device tree booting Signed-off-by: Olof Johansson <[email protected]>
2013-05-20ARM: vt8500: Add missing NULL terminator in dt_compatSrinivas Kandagatla1-0/+1
When I tried booting a stih415 Dual core A9 with multi_v7_defconfig, it failed to boot. The issues seems to be changing by enabling or disabling VT8550 platform. Having a quick look at dt_compat list, it seems to miss a NULL terminator, which means of_flat_dt_match will compat check will cross the boundary of dt_compat and fault at some point , which is what was happening in my case. Without this patch if we try to boot multi_v7_defconfig you might notice that some of the platforms might fault if they fall after vt8500 in machine-desc list. Other platforms which fall before vt8500 in mdesc list will not fault. Signed-off-by: Srinivas Kandagatla <[email protected]> Acked-by: Tony Prisk <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2013-05-20Merge tag 'at91-fixes' of git://github.com/at91linux/linux-at91 into fixesOlof Johansson5-15/+12
From Nicolas Ferre: An important revert on at91rm9200 platform related to timers that prevented the platform to boot properly. Then one pinctrl adjustments for SPI CS and a couple of trivial typos. * tag 'at91-fixes' of git://github.com/at91linux/linux-at91: ARM: at91: rm9200 fix time support ARM: at91: dts: request only spi cs-gpios used on sama5d3x cpu module ARM: at91/trivial: typo in GEM compatible string ARM: at91/trivial: fix model name for SAM9X25-EK Signed-off-by: Olof Johansson <[email protected]>
2013-05-20Merge tag 'fixes-3.10-1' of git://git.infradead.org/users/jcooper/linux into ↵Olof Johansson5-3/+7
fixes From Jason Cooper, mvebu fixes for v3.10: - mvebu - duplicate alias removal - augment new internal-regs dt node with proper ranges node - kirkwood - stable fix for QNAP TS-11x/TS-21x enabling PCIe port 1 - plat-orion - missing ehci include in common.h. needed within common.h. * tag 'fixes-3.10-1' of git://git.infradead.org/users/jcooper/linux: ARM: mvebu: Add a ranges entry to translate devbus childs ARM: plat-orion: add missing ehci include to common.h Kirkwood: Enable PCIe port 1 on QNAP TS-11x/TS-21x ARM: mvebu: do not duplicate the mpic alias Signed-off-by: Olof Johansson <[email protected]>
2013-05-20clk: tegra: add ac97 controller clockLucas Stach1-0/+8
AC97 controller clock is hardwired to pll_a_out0. Signed-off-by: Lucas Stach <[email protected]> Acked-by: Peter De Schrijver <[email protected]> Reviewed-by: Prashant Gaikwad <[email protected]> Acked-by: Mike Turquette <[email protected]> Tested-by: Stephen Warren <[email protected]> Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2013-05-20clk: tegra: remove USB from clk init tableLucas Stach1-3/+0
The USB clocks are just clock gates, so no need to set a specific clock. In fact trying to set a specific clock is just a NOP if the requested clockrate is the same as those of the parent (clk_m) or will trigger a WARN_ON() if rates don't match up. As we are not setting a specific rate, nor activating the clocks at init, there is no point in keeping the the usb entries in the clock init table. Signed-off-by: Lucas Stach <[email protected]> Acked-by: Peter De Schrijver <[email protected]> Reviewed-by: Prashant Gaikwad <[email protected]> Acked-by: Mike Turquette <[email protected]> Tested-by: Stephen Warren <[email protected]> Signed-off-by: Stephen Warren <[email protected]> Signed-off-by: Olof Johansson <[email protected]>
2013-05-21Merge branch 'drm-fixes-3.10-sun' of ↵Dave Airlie9-92/+362
git://people.freedesktop.org/~agd5f/linux into drm-next This is the pull request for AMD Sun/Hainan support. I've split it out separately from my regular fixes stream. Hainan is a new SI asic with no UVD or DCE hardware. The patches are minimally invasive; basically just pci ids and skipping UVD and DCE init for this family. Most of the changes to si.c are just the golden register tables for the family. * 'drm-fixes-3.10-sun' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: add Hainan pci ids drm/radeon: add golden register settings for Hainan (v2) drm/radeon: sun/hainan chips do not have UVD (v2) drm/radeon: track which asics have UVD drm/radeon: radeon-asic updates for Hainan drm/radeon: fill in ucode loading support for Hainan drm/radeon: don't touch DCE or VGA regs on Hainan (v3) drm/radeon: fill in GPU init for Hainan (v2) drm/radeon: add chip family for Hainan
2013-05-21Merge branch 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux ↵Dave Airlie8-25/+12
into drm-next Minor bug fixes. * 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux: drm/radeon/dce2: use 10khz units for audio dto calculation drm/radeon: Fix VRAM size calculation for VRAM >= 4GB drm/radeon: Remove superfluous variable
2013-05-20Linux 3.10-rc2Linus Torvalds1-1/+1
2013-05-20Merge tag 'stable/for-linus-3.10-rc1-tag' of ↵Linus Torvalds7-106/+82
git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen Pull Xen fixes from Konrad Rzeszutek Wilk: - Regression fix in xen privcmd fixing a memory leak. - Add Documentation for tmem driver. - Simplify and remove code in the tmem driver. - Cleanups. * tag 'stable/for-linus-3.10-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen: xen: Fixed assignment error in if statement xen/xenbus: Fixed over 80 character limit issue xen/xenbus: Fixed indentation error in switch case xen/tmem: Don't use self[ballooning|shrinking] if frontswap is off. xen/tmem: Remove the usage of '[no|]selfballoon' and use 'tmem.selfballooning' bool instead. xen/tmem: Remove the usage of 'noselfshrink' and use 'tmem.selfshrink' bool instead. xen/tmem: Remove the boot options and fold them in the tmem.X parameters. xen/tmem: s/disable_// and change the logic. xen/tmem: Fix compile warning. xen/tmem: Split out the different module/boot options. xen/tmem: Move all of the boot and module parameters to the top of the file. xen/tmem: Cleanup. Remove the parts that say temporary. xen/privcmd: fix condition in privcmd_close()
2013-05-20Merge branch 'for-davem' of ↵David S. Miller35-109/+314
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless John W. Linville says: ==================== This pull request is intended for the 3.10 series. It contains a variety of fixes for problems discovered during the merge window and after 3.10-rc1. For the mac80211 bits, Johannes says the following: "This is what I have: * a patch from Felix to fix RCU usage in his rate table code * a patch from Ilan to add the wdev id to some notifications so they can actually be used by userspace * Sasha Levin found an issue in how hwsim handles devices * a fix for a bug in the wiphy_register() error path that's been there forever * three fixes for WoWLAN * AP mode frame matching was erroneously giving frames to all virtual AP interfaces (reported by Jouni) * a fix for HT handling in my CSA changes, found by Sujith * a fix for some locking simplifications gone wrong * Ben Greear found more cfg80211/mac80211 state confusion * and a fix for another bug found by Jouni: local state changes need to be reported by mac80211 to cfg80211 so it disconnects properly." And for the iwlwifi bits, he says: "I have fixes for a firmware crash during resume, multicast RX, aggregation and a workaround for a firmware scanning bug." Along with those... Albert Pool adds a USB ID to the rtl8192cu driver. Arend van Spriel restores a driver option support flag that had been removed from 3.9 due to a bug in that version of the driver. Felix Fietkau fixes a trio of ath9k issues with a series of small patches. Geert Uytterhoeven provides a Kconfig fix for ath9k (which you also merged, so it isn't in the diff here). Larry Finger gives us a fix for a build warning on big-endian systems for rtlwifi. Rafał Miłecki adds some core IDs to the bcma driver. Sujith Manoharan fixes a module unloading crash in ath9k, and corrects some calibration settings for AR9485. ==================== Signed-off-by: David S. Miller <[email protected]>
2013-05-208139cp: reset BQL when ring tx ring clearedstephen hemminger1-0/+1
This patch cures transmit timeout's with DHCP observed while running under KVM. When the transmit ring is cleaned out, the Byte Queue Limit values need to be reset. Signed-off-by: Stephen Hemminger <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-05-20drivers: net: usb: rtl8150: concurrent URB bugfixPetko Manolov1-54/+46
This patch fixes a potential race with concurrently running asynchronous write requests. The values for device's RX control register are now stored in dynamically allocated buffers so each URB submission has it's own copy. Doing it the old way is data clobbering prone. This patch is against latest 'net' tree. Signed-off-by: Petko Manolov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-05-20isdn/kcapi: fix a small underflowDan Carpenter1-3/+3
In get_capi_ctr_by_nr() and get_capi_appl_by_nr() the parameter comes from skb->data. The current code can underflow to one space before the start of the array. The sanity check isn't needed in __get_capi_appl_by_nr() but I changed it to match the others. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-05-20Merge branch 'master' of ↵John W. Linville35-109/+314
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
2013-05-20TTY: Fix tty miss restart after we turn off flow-controlWang YanQing1-0/+8
I meet emacs hang in start if I do the operation below: 1: echo 3 > /proc/sys/vm/drop_caches 2: emacs BigFile 3: Press CTRL-S follow 2 immediately Then emacs hang on, CTRL-Q can't resume, the terminal hang on, you can do nothing with this terminal except close it. The reason is before emacs takeover control the tty, we use CTRL-S to XOFF it. Then when emacs takeover the control, it may don't use the flow-control, so emacs hang. This patch fix it. This patch will fix a kind of strange tty relation hang problem, I believe I meet it with vim in ssh, and also see below bug report: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=465823 Signed-off-by: Wang YanQing <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20tty/vt: Fix vc_deallocate() lock orderPeter Hurley3-27/+56
Now that the tty port owns the flip buffers and i/o is allowed from the driver even when no tty is attached, the destruction of the tty port (and the flip buffers) must ensure that no outstanding work is pending. Unfortunately, this creates a lock order problem with the console_lock (see attached lockdep report [1] below). For single console deallocation, drop the console_lock prior to port destruction. When multiple console deallocation, defer port destruction until the consoles have been deallocated. tty_port_destroy() is not required if the port has not been used; remove from vc_allocate() failure path. [1] lockdep report from Dave Jones <[email protected]> ====================================================== [ INFO: possible circular locking dependency detected ] 3.9.0+ #16 Not tainted ------------------------------------------------------- (agetty)/26163 is trying to acquire lock: blocked: ((&buf->work)){+.+...}, instance: ffff88011c8b0020, at: [<ffffffff81062065>] flush_work+0x5/0x2e0 but task is already holding lock: blocked: (console_lock){+.+.+.}, instance: ffffffff81c2fde0, at: [<ffffffff813bc201>] vt_ioctl+0xb61/0x1230 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (console_lock){+.+.+.}: [<ffffffff810b3f74>] lock_acquire+0xa4/0x210 [<ffffffff810416c7>] console_lock+0x77/0x80 [<ffffffff813c3dcd>] con_flush_chars+0x2d/0x50 [<ffffffff813b32b2>] n_tty_receive_buf+0x122/0x14d0 [<ffffffff813b7709>] flush_to_ldisc+0x119/0x170 [<ffffffff81064381>] process_one_work+0x211/0x700 [<ffffffff8106498b>] worker_thread+0x11b/0x3a0 [<ffffffff8106ce5d>] kthread+0xed/0x100 [<ffffffff81601cac>] ret_from_fork+0x7c/0xb0 -> #0 ((&buf->work)){+.+...}: [<ffffffff810b349a>] __lock_acquire+0x193a/0x1c00 [<ffffffff810b3f74>] lock_acquire+0xa4/0x210 [<ffffffff810620ae>] flush_work+0x4e/0x2e0 [<ffffffff81065305>] __cancel_work_timer+0x95/0x130 [<ffffffff810653b0>] cancel_work_sync+0x10/0x20 [<ffffffff813b8212>] tty_port_destroy+0x12/0x20 [<ffffffff813c65e8>] vc_deallocate+0xf8/0x110 [<ffffffff813bc20c>] vt_ioctl+0xb6c/0x1230 [<ffffffff813b01a5>] tty_ioctl+0x285/0xd50 [<ffffffff811ba825>] do_vfs_ioctl+0x305/0x530 [<ffffffff811baad1>] sys_ioctl+0x81/0xa0 [<ffffffff81601d59>] system_call_fastpath+0x16/0x1b other info that might help us debug this: [ 6760.076175] Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(console_lock); lock((&buf->work)); lock(console_lock); lock((&buf->work)); *** DEADLOCK *** 1 lock on stack by (agetty)/26163: #0: blocked: (console_lock){+.+.+.}, instance: ffffffff81c2fde0, at: [<ffffffff813bc201>] vt_ioctl+0xb61/0x1230 stack backtrace: Pid: 26163, comm: (agetty) Not tainted 3.9.0+ #16 Call Trace: [<ffffffff815edb14>] print_circular_bug+0x200/0x20e [<ffffffff810b349a>] __lock_acquire+0x193a/0x1c00 [<ffffffff8100a269>] ? sched_clock+0x9/0x10 [<ffffffff8100a269>] ? sched_clock+0x9/0x10 [<ffffffff8100a200>] ? native_sched_clock+0x20/0x80 [<ffffffff810b3f74>] lock_acquire+0xa4/0x210 [<ffffffff81062065>] ? flush_work+0x5/0x2e0 [<ffffffff810620ae>] flush_work+0x4e/0x2e0 [<ffffffff81062065>] ? flush_work+0x5/0x2e0 [<ffffffff810b15db>] ? mark_held_locks+0xbb/0x140 [<ffffffff8113c8a3>] ? __free_pages_ok.part.57+0x93/0xc0 [<ffffffff810b15db>] ? mark_held_locks+0xbb/0x140 [<ffffffff810652f2>] ? __cancel_work_timer+0x82/0x130 [<ffffffff81065305>] __cancel_work_timer+0x95/0x130 [<ffffffff810653b0>] cancel_work_sync+0x10/0x20 [<ffffffff813b8212>] tty_port_destroy+0x12/0x20 [<ffffffff813c65e8>] vc_deallocate+0xf8/0x110 [<ffffffff813bc20c>] vt_ioctl+0xb6c/0x1230 [<ffffffff810aec41>] ? lock_release_holdtime.part.30+0xa1/0x170 [<ffffffff813b01a5>] tty_ioctl+0x285/0xd50 [<ffffffff812b00f6>] ? inode_has_perm.isra.46.constprop.61+0x56/0x80 [<ffffffff811ba825>] do_vfs_ioctl+0x305/0x530 [<ffffffff812b04db>] ? selinux_file_ioctl+0x5b/0x110 [<ffffffff811baad1>] sys_ioctl+0x81/0xa0 [<ffffffff81601d59>] system_call_fastpath+0x16/0x1b Cc: Dave Jones <[email protected]> Signed-off-by: Peter Hurley <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20TTY: ehv_bytechan: add missing platform_driver_unregister() when module exitWei Yongjun1-0/+1
We have registered platform driver when module init, and need unregister it when module exit. Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20TTY: rocket, fix more no-PCI warningsJiri Slaby1-147/+141
Commit "TTY: rocket, fix compilation warning" fixed a compilation warning, but there was still a problem with !CONFIG_PCI configs. So fix them for good by coupling the PCI functions together and moving them inside a common #ifdef. Signed-off-by: Jiri Slaby <[email protected]> Reported-by: kbuild test robot <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20serial: mcf: missing uart_unregister_driver() on error in mcf_init()Wei Yongjun1-1/+3
Add the missing uart_unregister_driver() before return from mcf_init() in the error handling case. Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20tty: serial: mpc5xxx: fix error handing in mpc52xx_uart_init()Wei Yongjun1-3/+8
Add the missing uart_unregister_driver() and uninit before return from mpc52xx_uart_init() in the error handling case. Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20serial: samsung: add missing platform_driver_unregister() when module exitWei Yongjun1-0/+1
We have registered platform driver when module init, and need unregister it when module exit. Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20serial: pl011: protect attribute read from NULL platform data structLee Jones1-1/+1
It's completely feasible that platform data will be empty i.e. when booting with Device Tree with no device AUXDATA. So we must protect it's use in these use-cases, or risk a kernel Oops. Cc: Russell King <[email protected]> Cc: Jiri Slaby <[email protected]> Cc: Arnd Bergmann <[email protected]> Signed-off-by: Lee Jones <[email protected]> Reviewed-by: Linus Walleij <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20tty: nwpserial: Pass correct pointer to free_irq()Lars-Peter Clausen1-1/+1
free_irq() expects the same pointer that was passed to request_irq(), otherwise the IRQ is not freed. The issue was found using the following coccinelle script: <smpl> @r1@ type T; T devid; @@ request_irq(..., devid) @r2@ type r1.T; T devid; position p; @@ free_irq@p(..., devid) @@ position p != r2.p; @@ *free_irq@p(...) </smpl> Signed-off-by: Lars-Peter Clausen <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20serial: 8250_dw: Add valid clk pointer checkEzequiel Garcia1-2/+4
Commit ffc3ae6dd "serial: 8250_dw: Enable runtime PM" introduced runtime PM management, which enables/disables the clk without checking if the clk is valid. However, this driver allows to be probed without a defined clk, using clock-frequency, as a fallback. Therefore, on platforms that are device tree probed using clock-frequency instead of clk, we get an ugly NULL pointer dereference. This patch fixes it by simply adding a check before accessing the clk api. Signed-off-by: Ezequiel Garcia <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20Merge tag 'hwmon-for-linus' of ↵Linus Torvalds5-12/+34
git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: - Error path fixes for abituguru and iio_hwmon drivers. - Drop erroneously created attributes from nct6775 driver. - Drop redundant safety on cache lifetime for tmp401 driver. - Add explicit maintainer for LM95234 and TMP401 drivers. * tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: MAINTAINERS: Add myself as maintainer for LM95234 and TMP401 drivers hwmon: (tmp401) Drop redundant safety on cache lifetime hwmon: fix error return code in abituguru_probe() hwmon: (iio_hwmon) Fix null pointer dereference hwmon: (nct6775) Do not create non-existing attributes hwmon: (iio_hwmon) Fix missing iio_channel_release_all call if devm_kzalloc fail
2013-05-20x86: Fix bit corruption at CPU resume timeLinus Torvalds1-1/+1
In commit 78d77df71510 ("x86-64, init: Do not set NX bits on non-NX capable hardware") we added the early_pmd_flags that gets the NX bit set when a CPU supports NX. However, the new variable was marked __initdata, because the main _use_ of this is in an __init routine. However, the bit setting happens from secondary_startup_64(), which is called not only at bootup, but on every secondary CPU start. Including resuming from STR and at CPU hotplug time. So the value cannot be __initdata. Reported-bisected-and-tested-by: Michal Hocko <[email protected]> Cc: [email protected] # v3.9 Acked-by: Peter Anvin <[email protected]> Cc: Fernando Luis Vázquez Cao <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
2013-05-20USB: cxacru: potential underflow in cxacru_cm_get_array()Dan Carpenter1-1/+2
The value of "offd" comes off the instance->rcv_buf[] and we used it as the offset into an array. The problem is that we check the upper bound but not for negative values. Signed-off-by: Dan Carpenter <[email protected]> Cc: stable <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
2013-05-20gpio: Don't override the error code in probe error handlingAxel Lin4-9/+6
Otherwise, we return 0 in probe error paths when gpiochip_remove() returns 0. Also show error message if gpiochip_remove() fails. Signed-off-by: Axel Lin <[email protected]> Cc: Tomoya MORINAGA <[email protected]> Cc: Denis Turischev <[email protected]> Cc: Lars Poeschel <[email protected]> Signed-off-by: Linus Walleij <[email protected]>