12 years agoMerge branch 'pm-fixes' of git://
Linus Torvalds [Wed, 8 Jun 2011 22:58:51 +0000 (15:58 -0700)]
Merge branch 'pm-fixes' of git://git./linux/kernel/git/rafael/suspend-2.6

* 'pm-fixes' of git://
  PM / Runtime: Fix loops in pm_runtime_clk_notify()
  PM / Intel IOMMU: Fix init_iommu_pm_ops() for CONFIG_PM unset

12 years agovfs: reorganize 'struct inode' layout a bit
Linus Torvalds [Wed, 8 Jun 2011 22:18:19 +0000 (15:18 -0700)]
vfs: reorganize 'struct inode' layout a bit

This tries to make the 'struct inode' accesses denser in the data cache
by moving a commonly accessed field (i_security) closer to other fields
that are accessed often.

It also makes 'i_state' just an 'unsigned int' rather than 'unsigned
long', since we only use a few bits of that field, and moves it next to
the existing 'i_flags' so that we potentially get better structure
layout (although depending on config options, i_flags may already have
packed in the same word as i_lock, so this improves packing only for the
case of spinlock debugging)

Out 'struct inode' is still way too big, and we should probably move
some other fields around too (the acl fields in particular) for better
data cache access density.  Other fields (like the inode hash) are
likely to be entirely irrelevant under most loads.

Signed-off-by: Linus Torvalds <>
12 years agoselinux: simplify and clean up inode_has_perm()
Linus Torvalds [Wed, 8 Jun 2011 22:11:56 +0000 (15:11 -0700)]
selinux: simplify and clean up inode_has_perm()

This is a rather hot function that is called with a potentially NULL
"struct common_audit_data" pointer argument.  And in that case it has to
provide and initialize its own dummy common_audit_data structure.

However, all the _common_ cases already pass it a real audit-data
structure, so that uncommon NULL case not only creates a silly run-time
test, more importantly it causes that function to have a big stack frame
for the dummy variable that isn't even used in the common case!

So get rid of that stupid run-time behavior, and make the (few)
functions that currently call with a NULL pointer just call a new helper
function instead (naturally called inode_has_perm_noapd(), since it has
no adp argument).

This makes the run-time test be a static code generation issue instead,
and allows for a much denser stack since none of the common callers need
the dummy structure.  And a denser stack not only means less stack space
usage, it means better cache behavior.  So we have a win-win-win from
this simplification: less code executed, smaller stack footprint, and
better cache behavior.

Signed-off-by: Linus Torvalds <>
12 years agoMerge branch 'usb-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 21:27:48 +0000 (14:27 -0700)]
Merge branch 'usb-linus' of git://git./linux/kernel/git/gregkh/usb-2.6

* 'usb-linus' of git:// (28 commits)
  MAINTAINERS: add a maintainer to Gadget Framework
  USB: serial: add another 4N-GALAXY.DE PID to ftdi_sio driver
  Revert "USB: option: add ID for ZTE MF 330"
  drivers/usb/host/ohci-pxa27x.c: add missing clk_put
  USB: CONFIG_USB_GADGET_DUALSPEED is not user-configurable
  USB: dummy-hcd needs the has_tt flag
  usb-storage: redo incorrect reads
  usb/renesas_usbhs: free uep on removal
  usb/s3c-hsudc: fix error path
  usb/pxa25x_udc: cleanup the LUBBOCK err path
  usb/mv_udc_core: fix compile
  usb: gadget: include <linux/prefetch.h> to fix compiling error
  USB: s3c-hsotg: Tone down debugging
  usb: remove bad dput after dentry_unhash
  USB: core: Tolerate protocol stall during hub and port status read
  musb: fix prefetch build failure
  USB: cdc-acm: Adding second ACM channel support for Nokia E7 and C7
  usb-gadget: unlock data->lock mutex on error path in ep_write()
  USB: option Add blacklist for ZTE K3765-Z (19d2:2002)
  option: add Prolink PH300 modem IDs

12 years agoMAINTAINERS: add a maintainer to Gadget Framework
Felipe Balbi [Wed, 8 Jun 2011 16:16:28 +0000 (19:16 +0300)]
MAINTAINERS: add a maintainer to Gadget Framework

I'll be continuing the amazing work Dave has
done with the Gadget Framework.

Signed-off-by: Felipe Balbi <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoMerge branch 'spi/merge' of git://
Linus Torvalds [Wed, 8 Jun 2011 20:54:46 +0000 (13:54 -0700)]
Merge branch 'spi/merge' of git://

* 'spi/merge' of git://
  spi/rtc-m41t93: Use spi_get_drvdata() for SPI devices
  spi/omap2: fix uninitialized variable

12 years agoMerge git://
Linus Torvalds [Wed, 8 Jun 2011 20:54:29 +0000 (13:54 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://
  cifs: trivial: add space in fsc error message
  cifs: silence printk when establishing first session on socket
  CIFS ACL support needs CONFIG_KEYS, so depend on it
  possible memory corruption in cifs_parse_mount_options()
  cifs: make CIFS depend on CRYPTO_ECB
  cifs: fix the kernel release version in the default security warning message

12 years agoMerge 3.0-rc2 + Linus's latest into usb-linus
Greg Kroah-Hartman [Wed, 8 Jun 2011 20:50:00 +0000 (13:50 -0700)]
Merge 3.0-rc2 + Linus's latest into usb-linus

This is needed to get the following MAINTAINERS patch to apply properly.

Signed-off-by: Greg Kroah-Hartman <>
12 years agoUSB: serial: add another 4N-GALAXY.DE PID to ftdi_sio driver
Steffen Sledz [Tue, 7 Jun 2011 12:01:56 +0000 (14:01 +0200)]
USB: serial: add another 4N-GALAXY.DE PID to ftdi_sio driver

E.g. newer CAN 2.0 A/B <=> USB 2.0 converters report idProduct=f3c2.

Signed-off-by: Steffen Sledz <>
Cc: stable <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agospi/rtc-m41t93: Use spi_get_drvdata() for SPI devices
Geert Uytterhoeven [Wed, 8 Jun 2011 19:48:03 +0000 (21:48 +0200)]
spi/rtc-m41t93: Use spi_get_drvdata() for SPI devices

One new offender detected by the recently increased type checking in

drivers/rtc/rtc-m41t93.c: In function ‘m41t93_remove’:
drivers/rtc/rtc-m41t93.c:192: warning: passing argument 1 of ‘platform_get_drvdata’ from incompatible pointer type

Use spi_get_drvdata() instead of platform_get_drvdata(), cfr. commit
42fea15d6dc410e62dac6a764142045280624a5b ("spi/rtc-{ds1390,ds3234,m41t94}:
Use spi_get_drvdata() for SPI devices")

Signed-off-by: Geert Uytterhoeven <>
Signed-off-by: Grant Likely <>
12 years agoMerge branch 'stable/bug.fixes' of git://
Linus Torvalds [Wed, 8 Jun 2011 19:03:37 +0000 (12:03 -0700)]
Merge branch 'stable/bug.fixes' of git://git./linux/kernel/git/konrad/xen

* 'stable/bug.fixes' of git://
  xen: off by one errors in multicalls.c
  xen: use the trigger info we already have to choose the irq handler

12 years agocifs: trivial: add space in fsc error message
Jeff Layton [Wed, 8 Jun 2011 11:35:24 +0000 (07:35 -0400)]
cifs: trivial: add space in fsc error message

Signed-off-by: Jeff Layton <>
Signed-off-by: Steve French <>
12 years agoMerge branch 'perf-urgent-for-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 15:36:15 +0000 (08:36 -0700)]
Merge branch 'perf-urgent-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'perf-urgent-for-linus' of git://
  perf: Fix comments in include/linux/perf_event.h
  perf: Comment /proc/sys/kernel/perf_event_paranoid to be part of user ABI
  perf python: Fix argument name list of read_on_cpu()
  perf evlist: Don't die if sample_{id_all|type} is invalid
  perf python: Use exception to propagate errors
  perf evlist: Remove dependency on debug routines
  perf, cgroups: Fix up for new API

12 years agoMerge branch 'gpio/merge' of git://
Linus Torvalds [Wed, 8 Jun 2011 15:22:29 +0000 (08:22 -0700)]
Merge branch 'gpio/merge' of git://

* 'gpio/merge' of git://
  gpio/samsung: make Kconfig options def_bool
  gpio/exynos4: Fix incorrect mapping of gpio pull-up macro to register setting
  GPIO: OMAP: add locking around calls to _set_gpio_triggering
  GPIO: OMAP: fix setting IRQWAKEN bits for OMAP4
  GPIO: OMAP: fix section mismatch warnings
  gpio: Fix gpio-exynos4 build fails in mainline

12 years agoMerge branch 'v4l_for_linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 15:21:48 +0000 (08:21 -0700)]
Merge branch 'v4l_for_linus' of git://git./linux/kernel/git/mchehab/linux-2.6

* 'v4l_for_linus' of git://
  [media] soc_camera: preserve const attribute
  [media] uvc_entity: initialize return value
  [media] media: Fix media device minor registration
  [media] Make nchg variable signed because the code compares this variable against negative values
  [media] omap3isp: fix compiler warning
  [media] v4l: Fix media_entity_to_video_device macro argument name
  [media] ivtv: Internally separate encoder & decoder standard setting
  [media] ivtvfb: Add sanity check to ivtvfb_pan_display()
  [media] ivtvfb: use display information in info not in var for panning
  [media] ivtv: Make two ivtv_msleep_timeout calls uninterruptable
  [media] anysee: return EOPNOTSUPP for unsupported I2C messages
  [media] gspca - ov519: Set the default frame rate to 15 fps
  [media] gspca - stv06xx: Set a lower default value of gain for hdcs sensors
  [media] gspca: Remove coarse_expo_autogain.h
  [media] gspca - ov519: Change the ovfx2 bulk transfer size
  [media] gspca - ov519: Fix a regression for ovfx2 webcams

12 years agoMerge branch 'drm-radeon-urgent' of git://
Linus Torvalds [Wed, 8 Jun 2011 15:19:14 +0000 (08:19 -0700)]
Merge branch 'drm-radeon-urgent' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-radeon-urgent' of git://
  drm/radeon/kms: disable hdmi audio by default
  drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu
  drm/radeon/kms: set family for use in parser.

12 years agoMerge branch 'for_3.0/gpio-fixes' of git://
Grant Likely [Wed, 8 Jun 2011 15:12:16 +0000 (09:12 -0600)]
Merge branch 'for_3.0/gpio-fixes' of git://git./linux/kernel/git/khilman/linux-omap-pm into gpio/merge

12 years agotty_buffer: get rid of 'seen_tail' logic in flush_to_ldisc
Linus Torvalds [Wed, 8 Jun 2011 14:46:30 +0000 (07:46 -0700)]
tty_buffer: get rid of 'seen_tail' logic in flush_to_ldisc

The flush_to_ldisc() work entry has special logic to notice when it has
seen the original tail of the data queue, and it avoids continuing the
flush if it sees that _original_ tail rather than the current tail.

This logic can trigger in case somebody is constantly adding new data to
the tty while the flushing is active - and the intent is to avoid
excessive CPU usage while flushing the tty, especially as we used to do
this from a softirq context which made it non-preemptible.

However, since we no longer re-arm the work-queue from within itself
(because that causes other trouble: see commit a5660b41af6a "tty: fix
endless work loop when the buffer fills up"), this just leads to
possible hung tty's (most easily seen in SMP and with a test-program
that floods a pty with data - nobody seems to have reported this for any
real-life situation yet).

And since the workqueue isn't done from timers and softirq's any more,
it's doubtful whether the CPU useage issue is really relevant any more.
So just remove the logic entirely, and see if anybody ever notices.

Alternatively, we might want to re-introduce the "re-arm the work" for
just this case, but then we'd have to re-introduce the delayed work
model or some explicit timer, which really doesn't seem worth it for

Reported-and-tested-by: Guillaume Chazarain <>
Cc: Alan Cox <>
Cc: Felipe Balbi <>
Cc: Greg Kroah-Hartman <>
Signed-off-by: Linus Torvalds <>
12 years agodrm/radeon/kms: disable hdmi audio by default
Alex Deucher [Mon, 6 Jun 2011 21:39:16 +0000 (17:39 -0400)]
drm/radeon/kms: disable hdmi audio by default

The current RE'd code causes blank screens and
display problems on a lot of systems.  So disable
it by default for now.  It can still be enabled
by setting the audio parameter to 1.  E.g.:

and many other reported problems.

Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
12 years agodrm/radeon/kms: fix for radeon on systems >4GB without hardware iommu
Daniel Haid [Wed, 8 Jun 2011 10:04:45 +0000 (20:04 +1000)]
drm/radeon/kms: fix for radeon on systems >4GB without hardware iommu

On my x86_64 system with >4GB of ram and swiotlb instead of
a hardware iommu (because I have a VIA chipset), the call
to pci_set_dma_mask (see below) with 40bits returns an error.

But it seems that the radeon driver is designed to have
need_dma32 = true exactly if pci_set_dma_mask is called
with 32 bits and false if it is called with 40 bits.

I have read somewhere that the default are 32 bits. So if the
call fails I suppose that need_dma32 should be set to true.

And indeed the patch fixes the problem I have had before
and which I had described here:,106131,115940

Acked-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
12 years agodrm/radeon/kms: set family for use in parser.
Dave Airlie [Wed, 8 Jun 2011 09:58:29 +0000 (19:58 +1000)]
drm/radeon/kms: set family for use in parser.

Wierdly the kms parser never initialised the family, it wasn't really used
much, but the fmt checker patch started using it and it fell over.

Reported-by: Markus Trippelsdorf <>
Signed-off-by: Dave Airlie <>
12 years agoMerge branch 'irq-urgent-for-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 02:21:11 +0000 (19:21 -0700)]
Merge branch 'irq-urgent-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'irq-urgent-for-linus' of git://
  genirq: Ensure we locate the passed IRQ in irq_alloc_descs()
  genirq: Fix descriptor init on non-sparse IRQs
  irq: Handle spurios irq detection for threaded irqs
  genirq: Print threaded handler in spurious debug output

12 years agoMerge branch 'x86-urgent-for-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 02:20:53 +0000 (19:20 -0700)]
Merge branch 'x86-urgent-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'x86-urgent-for-linus' of git://
  x86/amd-iommu: Fix boot crash with hidden PCI devices
  x86/amd-iommu: Use only per-device dma_ops
  x86/amd-iommu: Fix 3 possible endless loops

12 years agoMerge branch 'sched-urgent-for-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 02:20:28 +0000 (19:20 -0700)]
Merge branch 'sched-urgent-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'sched-urgent-for-linus' of git://
  sched: Fix/clarify set_task_cpu() locking rules
  lockdep: Fix lock_is_held() on recursion
  sched: Fix schedstat.nr_wakeups_migrate
  sched: Fix cross-cpu clock sync on remote wakeups

12 years agoMerge branch 'drm-fixes' of git://
Linus Torvalds [Wed, 8 Jun 2011 02:09:26 +0000 (19:09 -0700)]
Merge branch 'drm-fixes' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-fixes' of git://
  drm/nv40: fall back to paged dma object for the moment
  drm/nouveau: fix leak of gart mm node
  drm/nouveau: fix vram page mapping when crossing page table boundaries
  drm/nv17-nv40: Fix modesetting failure when pitch == 4096px (fdo bug 35901).
  drm/nouveau: don't create accel engine objects when noaccel=1
  drm/nvc0: recognise 0xdX chipsets as NV_C0
  drm/i915: Add a no lvds quirk for the Asus EeeBox PC EB1007
  drm/i915: Share the common force-audio property between connectors
  drm/i915: Remove unused enum "chip_family"
  drm/915: fix relaxed tiling on gen2: tile height
  drm/i915/crt: Explicitly return false if connected to a digital monitor
  drm/i915: Replace ironlake_compute_wm0 with g4x_compute_wm0
  drm/i915: Only print out the actual number of fences for i915_error_state
  drm/i915: s/addr & ~PAGE_MASK/offset_in_page(addr)/
  drm: i915: correct return status in intel_hdmi_mode_valid()
  drm/i915: fix regression after clock gating init split
  drm/i915: fix if statement in ivybridge irq handler

12 years agoMerge branch 'drm-radeon-fixes' of git://
Linus Torvalds [Wed, 8 Jun 2011 02:09:17 +0000 (19:09 -0700)]
Merge branch 'drm-radeon-fixes' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-radeon-fixes' of git://
  drm/radeon/kms/atom: fix PHY init
  drm/radeon/kms: add missing Evergreen texture formats to the CS parser
  drm/radeon/kms: viewport height has to be even
  drm/radeon/kms: remove duplicate reg from r600 safe regs
  drm/radeon/kms: add support for Llano Fusion APUs
  drm/radeon/kms: add llano pci ids
  drm/radeon/kms: fill in asic struct for llano
  drm/radeon/kms: add family ids for llano APUs
  drm/radeon: fix oops in ttm reserve when pageflipping (v2)
  drm/radeon/kms: clean up the radeon kms Kconfig
  drm/radeon/kms: fix thermal sensor reading on juniper
  drm/radeon/kms: add missing case for cayman thermal sensor
  drm/radeon/kms: add blit support for cayman (v2)
  drm/radeon/kms/blit: workaround some hw issues on evergreen+

12 years agoMerge branch 'timers-fixes-for-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 02:07:22 +0000 (19:07 -0700)]
Merge branch 'timers-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'timers-fixes-for-linus' of git://
  timers: Consider slack value in mod_timer()
  clockevents: Handle empty cpumask gracefully

12 years agoMerge branch 'kvm-updates/3.0' of git://
Linus Torvalds [Wed, 8 Jun 2011 02:06:28 +0000 (19:06 -0700)]
Merge branch 'kvm-updates/3.0' of git://git./virt/kvm/kvm

* 'kvm-updates/3.0' of git://
  KVM: Initialize kvm before registering the mmu notifier
  KVM: x86: use proper port value when checking io instruction permission
  KVM: add missing void __user * cast to access_ok() call

12 years agoMAINTAINERS: Saying goodbye to David Brownell
Grant Likely [Mon, 6 Jun 2011 06:40:48 +0000 (00:40 -0600)]
MAINTAINERS: Saying goodbye to David Brownell

We had to say goodbye when David passed away recently.  David had a
huge impact on our community, both personally in the lives of the
people he worked with, and technically in the design and maintenance
of several subsystems.  He is greatly missed.

He also leaves behind a number of much loved subsystems now orphaned.
This patch updates the MAINTAINERS file for the areas that David was
responsible for and adds an entry for him to the CREDITS file.

Signed-off-by: Grant Likely <>
Acked-by: Harry Wei <>
Signed-off-by: Linus Torvalds <>
12 years agoMerge git://
Linus Torvalds [Wed, 8 Jun 2011 02:04:21 +0000 (19:04 -0700)]
Merge git://git./linux/kernel/git/hirofumi/fatfs-2.6

* git://
  fat: Fix corrupt inode flags when remove ATTR_SYS flag

12 years agoMN10300: Add missing _sdata declaration
David Howells [Mon, 6 Jun 2011 14:47:23 +0000 (15:47 +0100)]
MN10300: Add missing _sdata declaration

_sdata needs to be declared in the linker script now as of commit
a2d063ac216c ("extable, core_kernel_data(): Make sure all archs define

Signed-off-by: David Howells <>
Cc: Steven Rostedt <>
Signed-off-by: Linus Torvalds <>
12 years agoMN10300: die_if_no_fixup() shouldn't use get_user() as it doesn't call set_fs()
David Howells [Mon, 6 Jun 2011 14:47:14 +0000 (15:47 +0100)]
MN10300: die_if_no_fixup() shouldn't use get_user() as it doesn't call set_fs()

die_if_no_fixup() shouldn't use get_user() as it doesn't call set_fs() to
indicate that it wants to probe a kernel address.  Instead it should use

This fixes the problem of gdb seeing SIGILL rather than SIGTRAP when hitting
the KGDB special breakpoint upon SysRq+g being seen.  The problem was that
die_if_no_fixup() was failing to read the opcode of the instruction that caused
the exception, and thus not fixing up the exception.

This caused gdb to get a S04 response to the $? request in its remote protocol
rather than S05 - which would then cause it to continue with $C04 rather than
$c in an attempt to pass the signal onto the inferior process.  The kernel,
however, does not support $Cnn, and so objects by returning an E22 response,
indicating an error.  gdb does not expect this and prints:

warning: Remote failure reply: E22

and then returns to the gdb command prompt unable to continue.

Signed-off-by: David Howells <>
Signed-off-by: Linus Torvalds <>
12 years agoMN10300: Fix one of the kernel debugger cacheflush variants
David Howells [Mon, 6 Jun 2011 14:47:05 +0000 (15:47 +0100)]
MN10300: Fix one of the kernel debugger cacheflush variants

One of the kernel debugger cacheflush variants escaped proper testing.  Two of
the labels are wrong, being derived from the code that was copied to construct
the variant.

The first label results in the following assembler message:

    AS      arch/mn10300/mm/cache-dbg-flush-by-reg.o
  arch/mn10300/mm/cache-dbg-flush-by-reg.S: Assembler messages:
  arch/mn10300/mm/cache-dbg-flush-by-reg.S:123: Error: symbol `debugger_local_cache_flushinv_no_dcache' is already defined

And the second label results in the following linker message:

  arch/mn10300/mm/built-in.o:(.text+0x1d39): undefined reference to `mn10300_local_icache_inv_range_reg_end'
  arch/mn10300/mm/built-in.o:(.text+0x1d39): relocation truncated to fit: R_MN10300_PCREL16 against undefined symbol `mn10300_local_icache_inv_range_reg_end'

To test this file the following configuration pieces must be set:


Signed-off-by: David Howells <>
Signed-off-by: Linus Torvalds <>
12 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 01:47:53 +0000 (18:47 -0700)]
Merge branch 'for-linus' of git://

* 'for-linus' of git://
  [S390] fix kvm defines for 31 bit compile
  [S390] use generic RCU page-table freeing code
  [S390] qdio: Split SBAL entry flags
  [S390] kvm-s390: fix stfle facilities numbers >=64
  [S390] kvm-s390: Fix host crash on misbehaving guests

12 years agoMerge branch 'fixes' of git://
Linus Torvalds [Wed, 8 Jun 2011 01:46:37 +0000 (18:46 -0700)]
Merge branch 'fixes' of git://git./linux/kernel/git/tmlind/linux-omap-2.6

* 'fixes' of git:// (21 commits)
  ARM: OMAP4: MMC: increase delay for pbias
  arm: omap2plus: move NAND_BLOCK_SIZE out of boards
  omap4: hwmod: Enable the keypad
  omap3: Free Beagle rev gpios when they are read, so others can read them later
  arm: omap3: beagle: Ensure msecure is mux'd to be able to set the RTC
  omap: rx51: Don't power up speaker amplifier at bootup
  omap: rx51: Set regulator V28_A always on
  ARM: OMAP4: MMC: no regulator off during probe for eMMC
  arm: omap2plus: fix ads7846 pendown gpio request
  ARM: OMAP2: Add missing iounmap in omap4430_phy_init
  ARM: omap4: Pass core and wakeup mux tables to omap4_mux_init
  ARM: omap2+: mux: Allow board mux settings to be NULL
  OMAP4: fix return value of omap4_l3_init
  OMAP: iovmm: fix SW flags passed by user
  arch/arm/mach-omap1/dma.c: Invert calls to platform_device_put and platform_device_del
  OMAP2+: mux: fix compilation warnings
  OMAP: SRAM: Fix warning: format '%08lx' expects type 'long unsigned int'
  arm: omap3: cm-t3517: fix section mismatch warning
  OMAP2+: Fix 9 section mismatch(es) warnings from mach-omap2/built-in.o
  ARM: OMAP2: Add missing include of linux/gpio.h

12 years agoMerge git://
Linus Torvalds [Wed, 8 Jun 2011 01:44:10 +0000 (18:44 -0700)]
Merge git://git./linux/kernel/git/steve/gfs2-2.6-fixes

* git://
  GFS2: Processes waiting on inode glock that no processes are holding

12 years agoMerge branch 'fbdev-fixes-for-linus' of git://
Linus Torvalds [Wed, 8 Jun 2011 01:41:26 +0000 (18:41 -0700)]
Merge branch 'fbdev-fixes-for-linus' of git://git./linux/kernel/git/lethal/fbdev-3.x

* 'fbdev-fixes-for-linus' of git://
  video: Fix use-after-free by vga16fb on rmmod
  video: Convert vmalloc/memset to vzalloc
  efifb: Disallow manual bind and unbind
  efifb: Fix mismatched request/release_mem_region
  efifb: Enable write-combining
  drivers/video/pxa168fb.c: add missing clk_put
  drivers/video/imxfb.c: add missing clk_put
  fbdev: bf537-lq035: add missing blacklight properties type
  savagefb: Use panel CVT mode as default
  fbdev: sh_mobile_lcdcfb: Fix up fallout from MERAM changes.

12 years agoMerge branch 'for-linus-2' of git://
Linus Torvalds [Wed, 8 Jun 2011 01:36:59 +0000 (18:36 -0700)]
Merge branch 'for-linus-2' of git://git./linux/kernel/git/viro/vfs-2.6

* 'for-linus-2' of git://
  vfs: make unlink() and rmdir() return ENOENT in preference to EROFS
  lmLogOpen() broken failure exit
  usb: remove bad dput after dentry_unhash
  more conservative S_NOSEC handling

12 years agoRevert "USB: option: add ID for ZTE MF 330"
Greg Kroah-Hartman [Tue, 7 Jun 2011 22:03:37 +0000 (15:03 -0700)]
Revert "USB: option: add ID for ZTE MF 330"

This reverts commit a559d2c8c1bf652ea2d0ecd6ab4a250fcdb37db8.

Turns out that device id 0x1d6b:0x0002 is a USB hub, which causes havoc
when the option driver tries to bind to it.

So revert this as it doesn't seem to be needed at all.

Thanks to Michael Tokarev and Paweł Drobek for working on resolving this

Cc: Paweł Drobek <>
Cc: Michael Tokarev <>
Cc: Dominik Brodowski <>
Cc: stable <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoPM / Runtime: Fix loops in pm_runtime_clk_notify()
Rafael J. Wysocki [Tue, 7 Jun 2011 21:34:58 +0000 (23:34 +0200)]
PM / Runtime: Fix loops in pm_runtime_clk_notify()

The loops over connection ID strings in pm_runtime_clk_notify()
should actually iterate over the strings and not over the elements
of the first of them, so make them behave as appropriate.

This fixes a regression introduced by commit 600b776eb39a13a28b090
(OMAP1 / PM: Use generic clock manipulation routines for runtime PM).

Reported-and-tested-by: Janusz Krzysztofik <>
Signed-off-by: Rafael J. Wysocki <>
12 years agogpio/samsung: make Kconfig options def_bool
H Hartley Sweeten [Tue, 7 Jun 2011 20:37:27 +0000 (14:37 -0600)]
gpio/samsung: make Kconfig options def_bool

The Samsung GPIO drivers are always built-in when the relevant
platform is selected.  Change the Kconfig symbol to def_bool y
dependant on the platform.

Signed-off-by: H Hartley Sweeten <>
Acked-by: Kyungmin Park <>
Signed-off-by: Grant Likely <>
12 years agoPM / Intel IOMMU: Fix init_iommu_pm_ops() for CONFIG_PM unset
Rafael J. Wysocki [Tue, 7 Jun 2011 19:32:31 +0000 (21:32 +0200)]
PM / Intel IOMMU: Fix init_iommu_pm_ops() for CONFIG_PM unset

If CONFIG_PM is not set, init_iommu_pm_ops() introduced by commit
134fac3f457f3dd753ecdb25e6da3e5f6629f696 (PCI / Intel IOMMU: Use
syscore_ops instead of sysdev class and sysdev) is not defined
appropriately.  Fix this issue.

Reported-by: Tony Luck <>
Signed-off-by: Rafael J. Wysocki <>
12 years agogpio/exynos4: Fix incorrect mapping of gpio pull-up macro to register setting
Thomas Abraham [Tue, 7 Jun 2011 08:34:49 +0000 (14:04 +0530)]
gpio/exynos4: Fix incorrect mapping of gpio pull-up macro to register setting

The S3C_GPIO_PULL_UP macro value incorrectly maps to a reserved setting of GPIO
pull up/down registers on Exynos4 platform. Fix this incorrect mapping by adding
wrappers to the s3c_gpio_setpull_updown and s3c_gpio_getpull_updown functions.

Signed-off-by: Thomas Abraham <>
Acked-by: Kyungmin Park <>
Signed-off-by: Grant Likely <>
12 years agodrivers/usb/host/ohci-pxa27x.c: add missing clk_put
Julia Lawall [Wed, 1 Jun 2011 17:10:06 +0000 (19:10 +0200)]
drivers/usb/host/ohci-pxa27x.c: add missing clk_put

Add a label before the call to clk_put and jump to that in the error
handling code that occurs after the call to clk_get has succeeded.

A simplified version of the semantic match that finds this problem is as
follows: (

// <smpl>
@r exists@
expression e1,e2;
statement S;

e1 = clk_get@p1(...);
... when != e1 = e2
    when != clk_put(e1)
    when any
if (...) { ... when != clk_put(e1)
               when != if (...) { ... clk_put(e1) ... }
* return@p3 ...;
 } else S
// </smpl>

Signed-off-by: Julia Lawall <>
Acked-by: Eric Miao <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoUSB: CONFIG_USB_GADGET_DUALSPEED is not user-configurable
Alan Stern [Tue, 7 Jun 2011 15:31:05 +0000 (11:31 -0400)]
USB: CONFIG_USB_GADGET_DUALSPEED is not user-configurable

This patch (as1468) changes the Kconfig definition for
USB_GADGET_DUALSPEED.  This option is determined entirely by which
device controller drivers are to be built, through Select statements;
it does not need to be (and should not be) configurable by the user.

Also, the "default n" line is superfluous -- everything defaults to N.

Signed-off-by: Alan Stern <>
Acked-by: Felipe Balbi <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoUSB: dummy-hcd needs the has_tt flag
Alan Stern [Tue, 7 Jun 2011 15:33:01 +0000 (11:33 -0400)]
USB: dummy-hcd needs the has_tt flag

Like with other host controllers capable of operating at both high
speed and full speed, we need to indicate that the emulated controller
presented by dummy-hcd has this ability.  Otherwise usbcore will not
accept full-speed gadgets under dummy-hcd.  This patch (as1469) sets
the appropriate has_tt flag.

Signed-off-by: Alan Stern <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agousb-storage: redo incorrect reads
Alan Stern [Tue, 7 Jun 2011 15:35:52 +0000 (11:35 -0400)]
usb-storage: redo incorrect reads

Some USB mass-storage devices have bugs that cause them not to handle
the first READ(10) command they receive correctly.  The Corsair
Padlock v2 returns completely bogus data for its first read (possibly
it returns the data in encrypted form even though the device is
supposed to be unlocked).  The Feiya SD/SDHC card reader fails to
complete the first READ(10) command after it is plugged in or after a
new card is inserted, returning a status code that indicates it thinks
the command was invalid, which prevents the kernel from retrying the

Since the first read of a new device or a new medium is for the
partition sector, the kernel is unable to retrieve the device's
partition table.  Users have to manually issue an "hdparm -z" or
"blockdev --rereadpt" command before they can access the device.

This patch (as1470) works around the problem.  It adds a new quirk
flag, US_FL_INVALID_READ10, indicating that the first READ(10) should
always be retried immediately, as should any failing READ(10) commands
(provided the preceding READ(10) command succeeded, to avoid getting
stuck in a loop).  The patch also adds appropriate unusual_devs
entries containing the new flag.

Signed-off-by: Alan Stern <>
Tested-by: Sven Geggus <>
Tested-by: Paul Hartman <>
CC: Matthew Dharm <>
CC: <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agovfs: make unlink() and rmdir() return ENOENT in preference to EROFS
Theodore Ts'o [Mon, 6 Jun 2011 23:19:40 +0000 (19:19 -0400)]
vfs: make unlink() and rmdir() return ENOENT in preference to EROFS

If user space attempts to remove a non-existent file or directory, and
the file system is mounted read-only, return ENOENT instead of EROFS.
Either error code is arguably valid/correct, but ENOENT is a more
specific error message.

Reported-by: Michael Tokarev <>
Signed-off-by: "Theodore Ts'o" <>
Signed-off-by: Al Viro <>
12 years agolmLogOpen() broken failure exit
Al Viro [Sun, 5 Jun 2011 18:22:56 +0000 (19:22 +0100)]
lmLogOpen() broken failure exit

Callers of lmLogOpen() expect it to return -E... on failure exits, which
is what it returns, except for the case of blkdev_get_by_dev() failure.
It that case lmLogOpen() return the error with the wrong sign...

Signed-off-by: Al Viro <>
Acked-by: Dave Kleikamp <>
12 years agosched: Fix/clarify set_task_cpu() locking rules
Peter Zijlstra [Fri, 3 Jun 2011 15:37:07 +0000 (17:37 +0200)]
sched: Fix/clarify set_task_cpu() locking rules

Sergey reported a CONFIG_PROVE_RCU warning in push_rt_task where
set_task_cpu() was called with both relevant rq->locks held, which
should be sufficient for running tasks since holding its rq->lock
will serialize against sched_move_task().

Update the comments and fix the task_group() lockdep test.

Reported-and-tested-by: Sergey Senozhatsky <>
Cc: Oleg Nesterov <>
Signed-off-by: Peter Zijlstra <>
Signed-off-by: Ingo Molnar <>
12 years agolockdep: Fix lock_is_held() on recursion
Peter Zijlstra [Mon, 6 Jun 2011 10:32:43 +0000 (12:32 +0200)]
lockdep: Fix lock_is_held() on recursion

The main lock_is_held() user is lockdep_assert_held(), avoid false
assertions in lockdep_off() sections by unconditionally reporting the
lock is taken.

[ the reason this is important is a lockdep_assert_held() in ttwu()
  which triggers a warning under lockdep_off() as in printk() which
  can trigger another wakeup and lock up due to spinlock
  recursion, as reported and heroically debugged by Arne Jansen ]

Reported-and-tested-by: Arne Jansen <>
Signed-off-by: Peter Zijlstra <>
Cc: Linus Torvalds <>
Cc: <>
Signed-off-by: Ingo Molnar <>
12 years agox86/amd-iommu: Fix boot crash with hidden PCI devices
Joerg Roedel [Mon, 6 Jun 2011 14:50:14 +0000 (16:50 +0200)]
x86/amd-iommu: Fix boot crash with hidden PCI devices

Some PCIe cards ship with a PCI-PCIe bridge which is not
visible as a PCI device in Linux. But the device-id of the
bridge is present in the IOMMU tables which causes a boot
crash in the IOMMU driver.
This patch fixes by removing these cards from the IOMMU
handling. This is a pure -stable fix, a real fix to handle
this situation appriatly will follow for the next merge

Cc: # > 2.6.32
Signed-off-by: Joerg Roedel <>
12 years agocifs: silence printk when establishing first session on socket
Jeff Layton [Mon, 6 Jun 2011 19:40:23 +0000 (15:40 -0400)]
cifs: silence printk when establishing first session on socket

When signing is enabled, the first session that's established on a
socket will cause a printk like this to pop:

    CIFS VFS: Unexpected SMB signature

This is because the key exchange hasn't happened yet, so the signature
field is bogus. Don't try to check the signature on the socket until the
first session has been established. Also, eliminate the specific check
for SMB_COM_NEGOTIATE since this check covers that case too.

Cc: Shirish Pargaonkar <>
Signed-off-by: Jeff Layton <>
Signed-off-by: Steve French <>
12 years agoMerge remote branch 'nouveau/drm-nouveau-fixes' of /ssd/git/drm-nouveau-next into...
Dave Airlie [Tue, 7 Jun 2011 00:07:09 +0000 (10:07 +1000)]
Merge remote branch 'nouveau/drm-nouveau-fixes' of /ssd/git/drm-nouveau-next into drm-fixes

* 'nouveau/drm-nouveau-fixes' of /ssd/git/drm-nouveau-next:
  drm/nv40: fall back to paged dma object for the moment
  drm/nouveau: fix leak of gart mm node
  drm/nouveau: fix vram page mapping when crossing page table boundaries
  drm/nv17-nv40: Fix modesetting failure when pitch == 4096px (fdo bug 35901).
  drm/nouveau: don't create accel engine objects when noaccel=1
  drm/nvc0: recognise 0xdX chipsets as NV_C0

12 years agoMerge remote branch 'keithp/drm-intel-fixes' of /ssd/git/drm-next into drm-fixes
Dave Airlie [Mon, 6 Jun 2011 23:54:04 +0000 (09:54 +1000)]
Merge remote branch 'keithp/drm-intel-fixes' of /ssd/git/drm-next into drm-fixes

* 'keithp/drm-intel-fixes' of /ssd/git/drm-next:
  drm/i915: Add a no lvds quirk for the Asus EeeBox PC EB1007
  drm/i915: Share the common force-audio property between connectors
  drm/i915: Remove unused enum "chip_family"
  drm/915: fix relaxed tiling on gen2: tile height
  drm/i915/crt: Explicitly return false if connected to a digital monitor
  drm/i915: Replace ironlake_compute_wm0 with g4x_compute_wm0
  drm/i915: Only print out the actual number of fences for i915_error_state
  drm/i915: s/addr & ~PAGE_MASK/offset_in_page(addr)/
  drm: i915: correct return status in intel_hdmi_mode_valid()
  drm/i915: fix regression after clock gating init split
  drm/i915: fix if statement in ivybridge irq handler

12 years agousb/renesas_usbhs: free uep on removal
Sebastian Andrzej Siewior [Fri, 3 Jun 2011 17:50:48 +0000 (19:50 +0200)]
usb/renesas_usbhs: free uep on removal

Can't find evidence that this is actually done.

Cc: Kuninori Morimoto <>
Signed-off-by: Sebastian Andrzej Siewior <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agousb/s3c-hsudc: fix error path
Sebastian Andrzej Siewior [Fri, 3 Jun 2011 17:50:47 +0000 (19:50 +0200)]
usb/s3c-hsudc: fix error path

I doubt the clock is optional. In case it is it should not return with
an error code because we leak everything.

Cc: Jingoo Han <>
Signed-off-by: Sebastian Andrzej Siewior <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agousb/pxa25x_udc: cleanup the LUBBOCK err path
Sebastian Andrzej Siewior [Fri, 3 Jun 2011 17:50:46 +0000 (19:50 +0200)]
usb/pxa25x_udc: cleanup the LUBBOCK err path

this is more backwords than it has to be.

Signed-off-by: Sebastian Andrzej Siewior <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agousb/mv_udc_core: fix compile
Sebastian Andrzej Siewior [Fri, 3 Jun 2011 17:50:45 +0000 (19:50 +0200)]
usb/mv_udc_core: fix compile

|drivers/usb/gadget/mv_udc_core.c:2108: error: label `error' used but not defined

This seems to be broken since the initial commit. I changed this to a
simple return. The other user is the probe code which lets ->probe()
fail on error here.

|drivers/usb/gadget/mv_udc_core.c:2107: warning: passing argument 1 of `dev_err' from incompatible pointer type
|drivers/usb/gadget/mv_udc_core.c:2118: warning: initialization from incompatible pointer type
|drivers/usb/gadget/mv_udc_core.c:2119: warning: initialization from incompatible pointer type
|drivers/usb/gadget/mv_udc_core.c:2130: error: initializer element is not constant
|drivers/usb/gadget/mv_udc_core.c:2130: error: (near initialization for `')

Cc: Chao Xie <>
Signed-off-by: Sebastian Andrzej Siewior <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agousb: gadget: include <linux/prefetch.h> to fix compiling error
Bryan Wu [Thu, 2 Jun 2011 04:51:29 +0000 (12:51 +0800)]
usb: gadget: include <linux/prefetch.h> to fix compiling error

drivers/usb/gadget/at91_udc.c: In function 'write_fifo':
drivers/usb/gadget/at91_udc.c:421:2: error: implicit declaration of function 'prefetch'
make[3]: *** [drivers/usb/gadget/at91_udc.o] Error 1
make[2]: *** [drivers/usb/gadget] Error 2
make[2]: *** Waiting for unfinished jobs....

Signed-off-by: Bryan Wu <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoUSB: s3c-hsotg: Tone down debugging
Mark Brown [Wed, 1 Jun 2011 16:16:15 +0000 (17:16 +0100)]
USB: s3c-hsotg: Tone down debugging

Currently the s3c-hsotg driver is extremely chatty, producing voluminous
with large register dumps even in default operation. Tone this down so
we're not chatty unless DEBUG is defined.

Signed-off-by: Mark Brown <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agousb: remove bad dput after dentry_unhash
Sage Weil [Tue, 31 May 2011 16:11:11 +0000 (09:11 -0700)]
usb: remove bad dput after dentry_unhash

Commit 64252c75a (vfs: remove dget() from dentry_unhash()) removed the
useless dget from dentry_unhash but didn't fix up this caller in the usb
code.  There used to be exactly one dput per dentry_unhash call; now
there are none.

Tested-by: Sebastian Andrzej Siewior <>
Signed-off-by: Sage Weil <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agodrm/nv40: fall back to paged dma object for the moment
Ben Skeggs [Wed, 1 Jun 2011 04:08:49 +0000 (14:08 +1000)]
drm/nv40: fall back to paged dma object for the moment

PCI(E)GART isn't quite stable it seems, fall back to old method until I get
the time to sort it out properly.

Signed-off-by: Ben Skeggs <>
12 years agodrm/nouveau: fix leak of gart mm node
Ben Skeggs [Sun, 29 May 2011 23:28:31 +0000 (09:28 +1000)]
drm/nouveau: fix leak of gart mm node

Signed-off-by: Ben Skeggs <>
12 years agodrm/nouveau: fix vram page mapping when crossing page table boundaries
Ben Skeggs [Fri, 27 May 2011 16:12:04 +0000 (02:12 +1000)]
drm/nouveau: fix vram page mapping when crossing page table boundaries

Hopefully the cause of nvc0 "page jumping" issue.

Signed-off-by: Ben Skeggs <>
12 years agodrm/nv17-nv40: Fix modesetting failure when pitch == 4096px (fdo bug 35901).
Francisco Jerez [Tue, 24 May 2011 13:57:14 +0000 (15:57 +0200)]
drm/nv17-nv40: Fix modesetting failure when pitch == 4096px (fdo bug 35901).

Reported-by: Mario Bachmann <>
Tested-by: Greg Turner <>
Signed-off-by: Francisco Jerez <>
Signed-off-by: Ben Skeggs <>
12 years agodrm/nouveau: don't create accel engine objects when noaccel=1
Ben Skeggs [Wed, 25 May 2011 05:22:33 +0000 (15:22 +1000)]
drm/nouveau: don't create accel engine objects when noaccel=1

Fixes various potential oopses.

Signed-off-by: Ben Skeggs <>
12 years agodrm/nvc0: recognise 0xdX chipsets as NV_C0
Ben Skeggs [Wed, 25 May 2011 04:39:52 +0000 (14:39 +1000)]
drm/nvc0: recognise 0xdX chipsets as NV_C0

Should hopefully get modesetting at least from this, it appears these are
GF119 chipsets.  Accel will come eventually, once I order a board.

Signed-off-by: Ben Skeggs <>
12 years agoGPIO: OMAP: add locking around calls to _set_gpio_triggering
Colin Cross [Mon, 6 Jun 2011 20:38:18 +0000 (13:38 -0700)]
GPIO: OMAP: add locking around calls to _set_gpio_triggering

_set_gpio_triggering uses read-modify-write on bank registers,
lock bank->lock around all calls to it to prevent register
corruption if two cpus access gpios in the same bank at the
same time.

Signed-off-by: Colin Cross <>
Signed-off-by: Kevin Hilman <>
12 years agoGPIO: OMAP: fix setting IRQWAKEN bits for OMAP4
Colin Cross [Mon, 6 Jun 2011 20:38:17 +0000 (13:38 -0700)]
GPIO: OMAP: fix setting IRQWAKEN bits for OMAP4

Setting the IRQWAKEN bit was overwriting previous IRQWAKEN bits,
causing only the last bit set to take effect, resulting in lost
wakeups when the GPIO controller is in idle.

Replace direct writes to IRQWAKEN with MOD_REG_BIT calls to
perform a read-modify-write on the register.

Signed-off-by: Colin Cross <>
Signed-off-by: Kevin Hilman <>
12 years agoGPIO: OMAP: fix section mismatch warnings
Russell King [Fri, 27 May 2011 20:56:12 +0000 (13:56 -0700)]
GPIO: OMAP: fix section mismatch warnings

WARNING: arch/arm/plat-omap/built-in.o(.devinit.text+0x46c): Section mismatch in reference from the function omap_gpio_probe() to the function .init.text:omap_gpio_chip_init()
The function __devinit omap_gpio_probe() references
a function __init omap_gpio_chip_init().
If omap_gpio_chip_init is only used by omap_gpio_probe then
annotate omap_gpio_chip_init with a matching annotation.

Signed-off-by: Russell King <>
Signed-off-by: Kevin Hilman <>
12 years agoUSB: core: Tolerate protocol stall during hub and port status read
Libor Pechacek [Fri, 20 May 2011 12:53:25 +0000 (14:53 +0200)]
USB: core: Tolerate protocol stall during hub and port status read

Protocol stall should not be fatal while reading port or hub status as it is
transient state.  Currently hub EP0 STALL during port status read results in
failed device enumeration.  This has been observed with ST-Ericsson (formerly
Philips) USB 2.0 Hub (04cc:1521) after connecting keyboard.

Signed-off-by: Libor Pechacek <>
Acked-by: Alan Stern <>
Cc: stable <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agomusb: fix prefetch build failure
Mike Frysinger [Wed, 25 May 2011 12:13:24 +0000 (08:13 -0400)]
musb: fix prefetch build failure

After the prefetch/list.h restructure, drivers need to explicitly include
linux/prefetch.h in order to use the prefetch() function.  Otherwise, the
current driver fails to build:

drivers/usb/musb/musb_core.c: In function 'musb_write_fifo':
drivers/usb/musb/musb_core.c:219: error: implicit declaration of function 'prefetch'
make[3]: *** [drivers/usb/musb/musb_core.o] Error 1

Signed-off-by: Mike Frysinger <>
Signed-off-by: Felipe Balbi <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoUSB: cdc-acm: Adding second ACM channel support for Nokia E7 and C7
Toby Gray [Mon, 6 Jun 2011 13:52:48 +0000 (14:52 +0100)]
USB: cdc-acm: Adding second ACM channel support for Nokia E7 and C7

This adds the Nokia E7 and C7 to the list of devices in cdc-acm, allowing
the secondary ACM channel on the device to be exposed. Without this patch
the ACM driver won't claim this secondary channel as it's marked as
having a vendor-specific protocol.

Signed-off-by: Toby Gray <>
Cc: stable <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agousb-gadget: unlock data->lock mutex on error path in ep_write()
Alexey Khoroshilov [Fri, 27 May 2011 04:37:40 +0000 (08:37 +0400)]
usb-gadget: unlock data->lock mutex on error path in ep_write()

ep_write() acquires data->lock mutex in get_ready_ep() and releases it
on all paths except for one: when usb_endpoint_xfer_isoc() failed. The
patch adds mutex_unlock(&data->lock) at that path.

It is similar to commit 00cc7a5 ("usb-gadget: unlock data->lock mutex on error path in ep_read()"),
it was not fixed at that time by accident.

Found by Linux Driver Verification project (

Signed-off-by: Alexey Khoroshilov <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoUSB: option Add blacklist for ZTE K3765-Z (19d2:2002)
Torsten Hilbrich [Mon, 6 Jun 2011 13:39:55 +0000 (15:39 +0200)]
USB: option Add blacklist for ZTE K3765-Z (19d2:2002)

The funtion option_send_status times out when sending USB messages
to the interfaces 0, 1, and 2 of this UMTS stick. This results in a
5s timeout in the function causing other tty operations to feel very

This patch adds a blacklist entry for these 3 interfaces on the ZTE
K3765-Z device.

I was also able to reproduce the problem with v2.6.38 and v2.6.39.

This is very similar to a problem fixed in

commit 7a89e4cb9cdaba92f5fbc509945cf4e3c48db4e2
Author: Herton Ronaldo Krzesinski <>
Date:   Wed Mar 9 09:19:48 2011 +0000

    USB: serial: option: Apply OPTION_BLACKLIST_SENDSETUP also for ZTE MF626

Signed-off-by: Torsten Hilbrich <>
Cc: stable <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agooption: add Prolink PH300 modem IDs
Dan Williams [Mon, 6 Jun 2011 21:55:41 +0000 (16:55 -0500)]
option: add Prolink PH300 modem IDs

Simple ID addition.

Signed-off-by: Dan Williams <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agooption: add Alcatel X200 to sendsetup blacklist
Dan Williams [Mon, 6 Jun 2011 21:22:44 +0000 (16:22 -0500)]
option: add Alcatel X200 to sendsetup blacklist

This modem really wants sendsetup blacklisted for interfaces 0 and 1,
otherwise the kernel hardlocks for about 10 seconds while waiting for
the modem's firmware to respond, which it of course doesn't do.

A slight complication here is that TCT (who owns the Alcatel brand) used
the same USB IDs for the X200 as the X060s despite the devices having
completely different firmware and AT command sets, so we end up adding
the X060s to the blacklist at the same time.  PSA to OEMs: don't use the
same USB IDs for different devices.  Really.  It makes your kittens cry.

Signed-off-by: Dan Williams <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agooption: add Zoom 4597 modem USB IDs
Dan Williams [Mon, 6 Jun 2011 21:08:39 +0000 (16:08 -0500)]
option: add Zoom 4597 modem USB IDs

Uses Longcheer-based firmware and AT command set.

Signed-off-by: Dan Williams <>
Signed-off-by: Greg Kroah-Hartman <>
12 years agoMerge branch 'for-usb-linus' of git+ssh://
Greg Kroah-Hartman [Mon, 6 Jun 2011 22:55:57 +0000 (15:55 -0700)]
Merge branch 'for-usb-linus' of git+ssh:///linux/kernel/git/sarah/xhci into usb-linus

* 'for-usb-linus' of git+ssh://
  USB: xhci - fix interval calculation for FS isoc endpoints
  xhci: Disable MSI for some Fresco Logic hosts.
  xhci: Do not issue device reset when device is not setup
  xhci: Add defines for hardcoded slot states
  xhci: Bigendian fix for xhci_check_bandwidth()
  xhci: Bigendian fix for skip_isoc_td()

12 years agoCIFS ACL support needs CONFIG_KEYS, so depend on it
Darren Salt [Mon, 6 Jun 2011 16:58:16 +0000 (16:58 +0000)]
CIFS ACL support needs CONFIG_KEYS, so depend on it

Build fails if CONFIG_KEYS is not selected.

Signed-off-by: Darren Salt <>
Reviewed-by: Shirish Pargaonkar <>
Signed-off-by: Steve French <>
12 years agox86/amd-iommu: Use only per-device dma_ops
Joerg Roedel [Mon, 30 May 2011 13:56:24 +0000 (15:56 +0200)]
x86/amd-iommu: Use only per-device dma_ops

Unfortunatly there are systems where the AMD IOMMU does not
cover all devices. This breaks with the current driver as it
initializes the global dma_ops variable. This patch limits
the AMD IOMMU to the devices listed in the IVRS table fixing
DMA for devices not covered by the IOMMU.

Signed-off-by: Joerg Roedel <>
12 years agopossible memory corruption in cifs_parse_mount_options()
Vasily Averin [Mon, 6 Jun 2011 07:33:12 +0000 (11:33 +0400)]
possible memory corruption in cifs_parse_mount_options()

error path after mountdata check frees uninitialized mountdata_copy

Signed-off-by: Vasily Averin <>
Signed-off-by: Steve French <>
12 years agox86/amd-iommu: Fix 3 possible endless loops
Joerg Roedel [Mon, 6 Jun 2011 14:04:02 +0000 (16:04 +0200)]
x86/amd-iommu: Fix 3 possible endless loops

The driver contains several loops counting on an u16 value
where the exit-condition is checked against variables that
can have values up to 0xffff. In this case the loops will
never exit. This patch fixed 3 such loops.

Signed-off-by: Joerg Roedel <>
12 years ago[S390] fix kvm defines for 31 bit compile
Martin Schwidefsky [Mon, 6 Jun 2011 12:14:42 +0000 (14:14 +0200)]
[S390] fix kvm defines for 31 bit compile

KVM is not available for 31 bit but the KVM defines cause warnings:

arch/s390/include/asm/pgtable.h: In function 'ptep_test_and_clear_user_dirty':
arch/s390/include/asm/pgtable.h:817: warning: integer constant is too large for 'unsigned long' type
arch/s390/include/asm/pgtable.h:818: warning: integer constant is too large for 'unsigned long' type
arch/s390/include/asm/pgtable.h: In function 'ptep_test_and_clear_user_young':
arch/s390/include/asm/pgtable.h:837: warning: integer constant is too large for 'unsigned long' type
arch/s390/include/asm/pgtable.h:838: warning: integer constant is too large for 'unsigned long' type

Add 31 bit versions of the KVM defines to remove the warnings.

Signed-off-by: Martin Schwidefsky <>
12 years ago[S390] use generic RCU page-table freeing code
Martin Schwidefsky [Mon, 6 Jun 2011 12:14:41 +0000 (14:14 +0200)]
[S390] use generic RCU page-table freeing code

Replace the s390 specific rcu page-table freeing code with the
generic variant. This requires to duplicate the definition for the
struct mmu_table_batch as s390 does not use the generic tlb flush

While we are at it remove the restriction that page table fragments
can not be reused after a single fragment has been freed with rcu
and split out allocation and freeing of page tables with pgstes.

Signed-off-by: Martin Schwidefsky <>
12 years ago[S390] qdio: Split SBAL entry flags
Jan Glauber [Mon, 6 Jun 2011 12:14:40 +0000 (14:14 +0200)]
[S390] qdio: Split SBAL entry flags

The qdio SBAL entry flag is made-up of four different values that are
independent of one another. Some of the bits are reserved by the
hardware and should not be changed by qdio. Currently all four values
are overwritten since the SBAL entry flag is defined as an u32.

Split the SBAL entry flag into four u8's as defined by the hardware
and don't touch the reserved bits.

Signed-off-by: Jan Glauber <>
Signed-off-by: Martin Schwidefsky <>
12 years ago[S390] kvm-s390: fix stfle facilities numbers >=64
Christian Borntraeger [Mon, 6 Jun 2011 12:14:39 +0000 (14:14 +0200)]
[S390] kvm-s390: fix stfle facilities numbers >=64

Currently KVM masks out the known good facilities only for the first
double word, but passed the 2nd double word without filtering. This
breaks some code on newer systems:

[    0.593966] ------------[ cut here ]------------
[    0.594086] WARNING: at arch/s390/oprofile/hwsampler.c:696
[    0.594213] Modules linked in:
[    0.594321] Modules linked in:
[    0.594439] CPU: 0 Not tainted 3.0.0-rc1 #46
[    0.594564] Process swapper (pid: 1, task: 00000001effa8038, ksp: 00000001effafab8)
[    0.594735] Krnl PSW : 0704100180000000 00000000004ab89a (hwsampler_setup+0x75a/0x7b8)
[    0.594910]            R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0 EA:3
[    0.595120] Krnl GPRS: ffffffff00000000 00000000ffffffea ffffffffffffffea 00000000004a98f8
[    0.595351]            00000000004aa002 0000000000000001 000000000080e720 000000000088b9f8
[    0.595522]            000000000080d3e8 0000000000000000 0000000000000000 000000000080e464
[    0.595725]            0000000000000000 00000000005db198 00000000004ab3a2 00000001effafd98
[    0.595901] Krnl Code: 00000000004ab88cc0e5000673ca        brasl   %r14,57a020
[    0.596071]            00000000004ab892a7f4fc77            brc     15,4ab180
[    0.596276]            00000000004ab896a7f40001            brc     15,4ab898
[    0.596454]           >00000000004ab89aa7c8ffa1            lhi     %r12,-95
[    0.596657]            00000000004ab89ea7f4fc71            brc     15,4ab180
[    0.596854]            00000000004ab8a2a7f40001            brc     15,4ab8a4
[    0.597029]            00000000004ab8a6a7f4ff22            brc     15,4ab6ea
[    0.597230]            00000000004ab8aac0200011009a        larl    %r2,6cb9de
[    0.597441] Call Trace:
[    0.597511] ([<00000000004ab3a2>] hwsampler_setup+0x262/0x7b8)
[    0.597676]  [<0000000000875812>] oprofile_arch_init+0x32/0xd0
[    0.597834]  [<0000000000875788>] oprofile_init+0x28/0x74
[    0.597991]  [<00000000001001be>] do_one_initcall+0x3a/0x170
[    0.598151]  [<000000000084fa22>] kernel_init+0x142/0x1ec
[    0.598314]  [<000000000057db16>] kernel_thread_starter+0x6/0xc
[    0.598468]  [<000000000057db10>] kernel_thread_starter+0x0/0xc
[    0.598606] Last Breaking-Event-Address:
[    0.598707]  [<00000000004ab896>] hwsampler_setup+0x756/0x7b8
[    0.598863] ---[ end trace ce3179037f4e3e5b ]---

So lets also mask the 2nd double word. Facilites 66,76,76,77 should be fine.

Signed-off-by: Christian Borntraeger <>
Signed-off-by: Martin Schwidefsky <>
12 years ago[S390] kvm-s390: Fix host crash on misbehaving guests
Christian Borntraeger [Mon, 6 Jun 2011 12:14:38 +0000 (14:14 +0200)]
[S390] kvm-s390: Fix host crash on misbehaving guests

commit 9ff4cfb3fcfd48b49fdd9be7381b3be340853aa4 ([S390] kvm-390: Let
kernel exit SIE instruction on work) fixed a problem of commit
commit cd3b70f5d4d82f85d1e1d6e822f38ae098cf7c72 ([S390] virtualization
aware cpu measurement) but uncovered another one.

If a kvm guest accesses guest real memory that doesnt exist, the
page fault handler calls the sie hook, which then rewrites
the return psw from sie_inst to either sie_exit or sie_reenter.
On return, the page fault handler will then detect the wrong access
as a kernel fault causing a kernel oops in sie_reenter or sie_exit.

We have to add these two addresses to the exception  table to allow
graceful exits.

Signed-off-by: Christian Borntraeger <>
Signed-off-by: Martin Schwidefsky <>
12 years agovideo: Fix use-after-free by vga16fb on rmmod
Bruno Prémont [Tue, 24 May 2011 19:59:17 +0000 (19:59 +0000)]
video: Fix use-after-free by vga16fb on rmmod

Since fb_info is now refcounted and thus may get freed at any time it
gets unregistered module unloading will try to unregister framebuffer
as stored in platform data on probe though this pointer may
be stale.

Cleanup platform data on framebuffer release.

Signed-off-by: Bruno Prémont <>
Signed-off-by: Paul Mundt <>
12 years agoLinux 3.0-rc2 v3.0-rc2
Linus Torvalds [Mon, 6 Jun 2011 09:06:33 +0000 (18:06 +0900)]
Linux 3.0-rc2

12 years agomm: fix ENOSPC returned by handle_mm_fault()
Hugh Dickins [Mon, 6 Jun 2011 05:03:13 +0000 (22:03 -0700)]
mm: fix ENOSPC returned by handle_mm_fault()

Al Viro observes that in the hugetlb case, handle_mm_fault() may return
a value of the kind ENOSPC when its caller is expecting a value of the
kind VM_FAULT_SIGBUS: fix alloc_huge_page()'s failure returns.

Signed-off-by: Hugh Dickins <>
Acked-by: Al Viro <>
Signed-off-by: Linus Torvalds <>
12 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Mon, 6 Jun 2011 08:51:28 +0000 (17:51 +0900)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://
  ALSA: usb - turn off de-emphasis in s/pdif for cm6206
  ALSA: asihpi: Use angle brackets for system includes
  ALSA: fm801: add error handling if auto-detect fails
  ALSA: hda - Check pin support EAPD in ad198x_power_eapd_write
  ALSA: hda - Fix HP and Front pins of ad1988/ad1989 in ad198x_power_eapd()
  ALSA: 6fire: Don't leak firmware in error path
  ASoC: Fix wm_hubs input PGA ZC bits
  ASoC: Fix dapm_is_shared_kcontrol so everything isn't shared

12 years agoMerge branch 'hwmon-for-linus' of git://
Linus Torvalds [Mon, 6 Jun 2011 08:48:02 +0000 (17:48 +0900)]
Merge branch 'hwmon-for-linus' of git://git./linux/kernel/git/groeck/staging

* 'hwmon-for-linus' of git://
  hwmon: (max6642): Better chip detection schema
  hwmon: (coretemp) Further relax temperature range checks
  hwmon: (coretemp) Fix TjMax detection for older CPUs
  hwmon: (coretemp) Relax target temperature range check
  hwmon: (max6642) Rename temp_fault sysfs attribute to temp2_fault

12 years agoKVM: Initialize kvm before registering the mmu notifier
Mike Waychison [Fri, 3 Jun 2011 20:04:53 +0000 (13:04 -0700)]
KVM: Initialize kvm before registering the mmu notifier

It doesn't make sense to ever see a half-initialized kvm structure on
mmu notifier callbacks.  Previously, 85722cda changed the ordering to
ensure that the mmu_lock was initialized before mmu notifier
registration, but there is still a race where the mmu notifier could
come in and try accessing other portions of struct kvm before they are

Solve this by moving the mmu notifier registration to occur after the
structure is completely initialized.

Google-Bug-Id: 452199
Signed-off-by: Mike Waychison <>
Signed-off-by: Avi Kivity <>
12 years agoKVM: x86: use proper port value when checking io instruction permission
Marcelo Tosatti [Mon, 30 May 2011 18:23:14 +0000 (15:23 -0300)]
KVM: x86: use proper port value when checking io instruction permission

Commit f6511935f42 moved the permission check for io instructions
to the ->check_perm callback. It failed to copy the port value from RDX
register for string and "in,out ax,dx" instructions.

Fix it by reading RDX register at decode stage when appropriate.

Fixes FC8.32 installation.

Signed-off-by: Marcelo Tosatti <>
12 years agoMerge branch 'fix/asoc' into for-linus
Takashi Iwai [Mon, 6 Jun 2011 07:28:49 +0000 (09:28 +0200)]
Merge branch 'fix/asoc' into for-linus

12 years agoUSB: xhci - fix interval calculation for FS isoc endpoints
Dmitry Torokhov [Tue, 31 May 2011 21:37:23 +0000 (14:37 -0700)]
USB: xhci - fix interval calculation for FS isoc endpoints

Full-speed isoc endpoints specify interval in exponent based form in
frames, not microframes, so we need to adjust accordingly.

NEC xHCI host controllers will return an error code of 0x11 if a full
speed isochronous endpoint is added with the Interval field set to
something less than 3 (2^3 = 8 microframes, or one frame).  It is
impossible for a full speed device to have an interval smaller than one

This was always an issue in the xHCI driver, but commit
dfa49c4ad120a784ef1ff0717168aa79f55a483a "USB: xhci - fix math in
xhci_get_endpoint_interval()" removed the clamping of the minimum value
in the Interval field, which revealed this bug.

This needs to be backported to stable kernels back to 2.6.31.

Reported-by: Matt Evans <>
Signed-off-by: Dmitry Torokhov <>
Signed-off-by: Sarah Sharp <>
12 years agodrm/radeon/kms/atom: fix PHY init
Alex Deucher [Fri, 3 Jun 2011 20:39:06 +0000 (16:39 -0400)]
drm/radeon/kms/atom: fix PHY init

The PHY was not initialized correctly after
ac89af1e1010640db072416c786f97391b85790f since
the function bailed early as an encoder was not
assigned.  The encoder isn't necessary for PHY init
so just assign to 0 for init so that the table
is executed.

Reported-by: Ari Savolainen <>
Tested-by: Ari Savolainen <>
Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
12 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Sat, 4 Jun 2011 23:11:11 +0000 (08:11 +0900)]
Merge branch 'for-linus' of git://android.git./kernel/tegra

* 'for-linus' of git://
  ARM: Tegra: Harmony: Fix conflicting GPIO numbering