11 years agoMerge branch 'fixes' of git://
Linus Torvalds [Mon, 22 Aug 2011 01:13:19 +0000 (18:13 -0700)]
Merge branch 'fixes' of git://git./linux/kernel/git/ieee1394/linux1394-2.6

* 'fixes' of git://
  firewire: core: handle ack_busy when fetching the Config ROM

11 years agoBtrfs: fix 64 bit divide problem
Josef Bacik [Sat, 20 Aug 2011 12:29:51 +0000 (08:29 -0400)]
Btrfs: fix 64 bit divide problem

This fixes a regression introduced by commit cdcb725c05fe ("Btrfs: check
if there is enough space for balancing smarter").  We can't do 64-bit
divides on 32-bit architectures.

In cases where we need to divide/multiply by 2 we should just left/right
shift respectively, and in cases where theres N number of devices use
do_div.  Also make the counters u64 to match up with rw_devices.

Signed-off-by: Josef Bacik <>
Acked-and-tested-by: Ingo Molnar <>
Signed-off-by: Linus Torvalds <>
11 years agoMerge branch 'for_linus' of git://
Linus Torvalds [Sun, 21 Aug 2011 13:59:41 +0000 (06:59 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/tytso/ext4

* 'for_linus' of git://
  ext4: flush any pending end_io requests before DIO reads w/dioread_nolock
  ext4: fix nomblk_io_submit option so it correctly converts uninit blocks
  ext4: Resolve the hang of direct i/o read in handling EXT4_IO_END_UNWRITTEN.
  ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode
  ext4: Fix ext4_should_writeback_data() for no-journal mode

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Sun, 21 Aug 2011 13:59:02 +0000 (06:59 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://
  ALSA: sound/aoa/fabrics/layout.c: remove unneeded kfree
  ALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.c
  ALSA: hda - Don't spew too many ELD errors
  ALSA: usb-audio - Fix missing mixer dB information
  ALSA: hda - Add "PCM" volume to vmaster slave list
  ALSA: hda - Fix duplicated capture-volume creation for ALC268 models
  ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist
  ALSA: snd_usb_caiaq: track submitted output urbs

11 years agopci: fix new kernel-doc warning in pci.c
Randy Dunlap [Sat, 20 Aug 2011 18:49:43 +0000 (11:49 -0700)]
pci: fix new kernel-doc warning in pci.c

Fix new kernel-doc warning in pci.c:

  Warning(drivers/pci/pci.c:3259): No description found for parameter 'mps'
  Warning(drivers/pci/pci.c:3259): Excess function parameter 'rq' description in 'pcie_set_mps'

Signed-off-by: Randy Dunlap <>
Cc: Jesse Barnes <>
Signed-off-by: Linus Torvalds <>
11 years agoALSA: sound/aoa/fabrics/layout.c: remove unneeded kfree
Julia Lawall [Sat, 20 Aug 2011 06:12:41 +0000 (08:12 +0200)]
ALSA: sound/aoa/fabrics/layout.c: remove unneeded kfree

The label outnodev is only used when kzalloc has not yet taken place or has
failed, so there is no need for the call for kfree under this label.

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

// <smpl>
identifier x;
expression E1!=0,E2,E3,E4;
statement S;
iterator I;

if (...) { ... when != kfree(x)
               when != x = E3
               when != E3 = x
*  return ...;
... when != x = E2
    when != I(...,x,...) S
if (...) { ... when != x = E4
 kfree(x); ... return ...; }
// </smpl>

Signed-off-by: Julia Lawall <>
Signed-off-by: Takashi Iwai <>
11 years agoALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.c
Takashi Iwai [Sat, 20 Aug 2011 07:19:59 +0000 (09:19 +0200)]
ALSA: hda - Fix error check from snd_hda_get_conn_index() in patch_cirrus.c

snd_hda_get_conn_index() returns a negative value while the current code
stores it in an unsigned int.  It must be stored in a signed integer.

Reported-by: Jesper Juhl <>
Signed-off-by: Takashi Iwai <>
11 years agoALSA: hda - Don't spew too many ELD errors
Takashi Iwai [Sat, 20 Aug 2011 07:14:45 +0000 (09:14 +0200)]
ALSA: hda - Don't spew too many ELD errors

Currently HD-audio driver shows the all error ELD byte as an error
in the kernel message.  This is annoying when the video driver doesn't
set the correct ELD from the beginning. e.g. radeon sends a zero-byte
data, but we still check ELD with the fixed 128 byte as a workaround
for some broken devices, it spews 128-times errors.

For avoiding this, the driver aborts reading when the first byte is
invalid.  In such a case, the whole data is certainly invalid.

Signed-off-by: Takashi Iwai <>
11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Sat, 20 Aug 2011 06:07:08 +0000 (23:07 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jbarnes/drm-intel

* 'for-linus' of git://
  drm/i915: set GFX_MODE to pre-Ivybridge default value even on Ivybridge

11 years agoext4: flush any pending end_io requests before DIO reads w/dioread_nolock
Jiaying Zhang [Fri, 19 Aug 2011 23:13:32 +0000 (19:13 -0400)]
ext4: flush any pending end_io requests before DIO reads w/dioread_nolock

There is a race between ext4 buffer write and direct_IO read with
dioread_nolock mount option enabled. The problem is that we clear
PageWriteback flag during end_io time but will do
uninitialized-to-initialized extent conversion later with dioread_nolock.
If an O_direct read request comes in during this period, ext4 will return
zero instead of the recently written data.

This patch checks whether there are any pending uninitialized-to-initialized
extent conversion requests before doing O_direct read to close the race.
Note that this is just a bandaid fix. The fundamental issue is that we
clear PageWriteback flag before we really complete an IO, which is
problem-prone. To fix the fundamental issue, we may need to implement an
extent tree cache that we can use to look up pending to-be-converted extents.

Signed-off-by: Jiaying Zhang <>
Signed-off-by: "Theodore Ts'o" <>
11 years agodrm/i915: set GFX_MODE to pre-Ivybridge default value even on Ivybridge
Jesse Barnes [Fri, 12 Aug 2011 22:28:32 +0000 (15:28 -0700)]
drm/i915: set GFX_MODE to pre-Ivybridge default value even on Ivybridge

Prior to Ivybridge, the GFX_MODE would default to 0x800, meaning that
MI_FLUSH would flush the TLBs in addition to the rest of the caches
indicated in the MI_FLUSH command.  However starting with Ivybridge, the
register defaults to 0x2800 out of reset, meaning that to invalidate the
TLB we need to use PIPE_CONTROL.  Since we're not doing that yet, go
back to the old default so things work.

v2: don't forget to actually *clear* the new bit

Reviewed-by: Eric Anholt <>
Reviewed-by: Chris Wilson <>
Tested-by: Kenneth Graunke <>
Signed-off-by: Jesse Barnes <>
11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Fri, 19 Aug 2011 17:47:07 +0000 (10:47 -0700)]
Merge branch 'for-linus' of git://

* 'for-linus' of git:// (23 commits)
  Revert "cfq: Remove special treatment for metadata rqs."
  block: fix flush machinery for stacking drivers with differring flush flags
  block: improve rq_affinity placement
  blktrace: add FLUSH/FUA support
  Move some REQ flags to the common bio/request area
  allow blk_flush_policy to return REQ_FSEQ_DATA independent of *FLUSH
  xen/blkback: Make description more obvious.
  cfq-iosched: Add documentation about idling
  block: Make rq_affinity = 1 work as expected
  block: swim3: fix unterminated of_device_id table
  block/genhd.c: remove useless cast in diskstats_show()
  drivers/cdrom/cdrom.c: relax check on dvd manufacturer value
  drivers/block/drbd/drbd_nl.c: use bitmap_parse instead of __bitmap_parse
  bsg-lib: add module.h include
  cfq-iosched: Reduce linked group count upon group destruction
  blk-throttle: correctly determine sync bio
  loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other
  loop: add BLK_DEV_LOOP_MIN_COUNT=%i to allow distros 0 pre-allocated loop devices
  loop: add management interface for on-demand device allocation
  loop: replace linked list of allocated devices with an idr index

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Fri, 19 Aug 2011 17:02:37 +0000 (10:02 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/jbarnes/pci-2.6

* 'for-linus' of git://
  PCI: OF: Don't crash when bridge parent is NULL.
  PCI: export pcie_bus_configure_settings symbol
  PCI: code and comments cleanup
  PCI: make cardbus-bridge resources optional
  PCI: make SRIOV resources optional
  PCI : ability to relocate assigned pci-resources
  PCI: honor child buses add_size in hot plug configuration
  PCI: Set PCI-E Max Payload Size on fabric

11 years agoPCI: OF: Don't crash when bridge parent is NULL.
David Daney [Tue, 16 Aug 2011 18:24:37 +0000 (11:24 -0700)]
PCI: OF: Don't crash when bridge parent is NULL.

In pcibios_get_phb_of_node(), we will crash while booting if
bus->bridge->parent is NULL.

Check for this case and avoid dereferencing the NULL pointer.

Signed-off-by: David Daney <>
Acked-by: Benjamin Herrenschmidt <>
Acked-by: Grant Likely <>
Signed-off-by: Jesse Barnes <>
11 years agoRevert "cfq: Remove special treatment for metadata rqs."
Jens Axboe [Fri, 19 Aug 2011 06:34:48 +0000 (08:34 +0200)]
Revert "cfq: Remove special treatment for metadata rqs."

We have a kernel build regression since 3.1-rc1, which is about 10%
regression. The kernel source is in an ext3 filesystem.
Alex Shi bisect it to commit:
commit a07405b7802691d29ab3b23bdc76ee6d006aad0b
Author: Justin TerAvest <>
Date:   Sun Jul 10 22:09:19 2011 +0200

    cfq: Remove special treatment for metadata rqs.

Apparently this is caused by lack metadata preemption, where ext3/ext4
do use READ_META. I didn't see a way to fix the issue, so suggest
reverting the patch.

This reverts commit a07405b7802691d29ab3b23bdc76ee6d006aad0b.

Reported-by: Alex Shi<>
Reported-by: Shaohua Li<>
Signed-off-by: Jens Axboe <>
11 years agoALSA: usb-audio - Fix missing mixer dB information
Takashi Iwai [Fri, 19 Aug 2011 05:55:10 +0000 (07:55 +0200)]
ALSA: usb-audio - Fix missing mixer dB information

The recent fix for testing dB range at the mixer creation time seems
to cause regressions in some devices.  In such devices, reading the dB
info at probing time gives an error, thus both dBmin and dBmax are still
zero, and TLV flag isn't set although the later read of dB info succeeds.

This patch adds a workaround for such a case by assuming that the later
read will succeed.  In future, a similar test should be performed in a
case where a wrong dB range is seen even in the later read.

Signed-off-by: Takashi Iwai <>
Cc: <>
11 years agoMerge git://
Linus Torvalds [Fri, 19 Aug 2011 05:49:34 +0000 (22:49 -0700)]
Merge git://git./linux/kernel/git/davem/sparc

* git://
  sparc: fix array bounds error setting up PCIC NMI trap

11 years agoMerge branch 'upstream-linus' of git://
Linus Torvalds [Fri, 19 Aug 2011 05:48:30 +0000 (22:48 -0700)]
Merge branch 'upstream-linus' of git://git./linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of git://
  drivers/ata/sata_dwc_460ex.c: add missing kfree
  ata: Add iMX pata support
  pata_via: disable ATAPI DMA on AVERATEC 3200
  [libata] sata_sil: fix used-uninit warning

11 years agoMerge branch 'bugfixes' of git://
Linus Torvalds [Fri, 19 Aug 2011 05:47:13 +0000 (22:47 -0700)]
Merge branch 'bugfixes' of git://

* 'bugfixes' of git://
  NFSv4.1: Return NFS4ERR_BADSESSION to callbacks during session resets
  NFSv4.1: Fix the callback 'highest_used_slotid' behaviour
  pnfs-obj: Fix the comp_index != 0 case
  pnfs-obj: Bug when we are running out of bio
  nfs: add missing prefetch.h include

11 years agosparc: fix array bounds error setting up PCIC NMI trap
Ian Campbell [Wed, 17 Aug 2011 22:14:57 +0000 (22:14 +0000)]
sparc: fix array bounds error setting up PCIC NMI trap

  CC      arch/sparc/kernel/pcic.o
arch/sparc/kernel/pcic.c: In function 'pcic_probe':
arch/sparc/kernel/pcic.c:359:33: error: array subscript is above array bounds [-Werror=array-bounds]
arch/sparc/kernel/pcic.c:359:8: error: array subscript is above array bounds [-Werror=array-bounds]
arch/sparc/kernel/pcic.c:360:33: error: array subscript is above array bounds [-Werror=array-bounds]
arch/sparc/kernel/pcic.c:360:8: error: array subscript is above array bounds [-Werror=array-bounds]
arch/sparc/kernel/pcic.c:361:33: error: array subscript is above array bounds [-Werror=array-bounds]
arch/sparc/kernel/pcic.c:361:8: error: array subscript is above array bounds [-Werror=array-bounds]
cc1: all warnings being treated as errors

I'm not particularly familiar with sparc but t_nmi (defined in head_32.S via
the TRAP_ENTRY macro) and pcic_nmi_trap_patch (defined in entry.S) both appear
to be 4 instructions long and I presume from the usage that instructions are
int sized.

Signed-off-by: Ian Campbell <>
Cc: "David S. Miller" <>
Reviewed-by: Sam Ravnborg <>
Signed-off-by: David S. Miller <>
11 years agodrivers/ata/sata_dwc_460ex.c: add missing kfree
Julia Lawall [Mon, 8 Aug 2011 11:17:57 +0000 (13:17 +0200)]
drivers/ata/sata_dwc_460ex.c: add missing kfree

Currently, error handling code in this function calls the function
sata_dwc_port_stop, but this function has essentially no effect if hsdevp
has not been stored in ap, which is the case throughout this function.  The
only effect is to print a debugging message including ap->print_id.

The code is rewritten to not call sata_dwc_port_stop, but instead to jump
to a local label that prints the original error message and the print_id
information.  In the case where hsdevp has been already allocated (but not
yet stored in ap), this value is freed as well.

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

// <smpl>
local idexpression x;
statement S,S1;
expression E;
identifier fl;
expression *ptr != NULL;

x = \(kmalloc\|kzalloc\|kcalloc\)(...);
if (x == NULL) S
<... when != x
     when != if (...) { <+...kfree(x)...+> }
     when any
     when != true x == NULL
if (x == NULL) S1
if (...) { ... when != x
               when forall
 return \(0\|<+...x...+>\|ptr\);
* return ...;
// </smpl>

Signed-off-by: Julia Lawall <>
Signed-off-by: Jeff Garzik <>
11 years agoata: Add iMX pata support
Arnaud Patard (Rtp) [Tue, 26 Jul 2011 14:58:19 +0000 (16:58 +0200)]
ata: Add iMX pata support

Add basic support for pata on iMX. It has been tested only on imx51.
SDMA support will probably be added later so this version supports only

  - enable only when needed IORDY
  - use dev_get_drvdata
  - add missing clk_put() calls
  - use platform_get_irq()
  - fix resume code to avoid disabling IORDY on resume
  - Remove EXPERIMENTAL and switch to depends on ARCH_MXC
  - Use devm_kzalloc()
  - make clock a must-have
  - Use only 1 ioremap

Signed-off-by: Arnaud Patard <>
Signed-off-by: Jeff Garzik <>
11 years agopata_via: disable ATAPI DMA on AVERATEC 3200
Tejun Heo [Thu, 4 Aug 2011 09:15:07 +0000 (11:15 +0200)]
pata_via: disable ATAPI DMA on AVERATEC 3200

On AVERATEC 3200, pata_via causes memory corruption with ATAPI DMA,
which often leads to random kernel oops.  The cause of the problem is
not well understood yet and only small subset of machines using the
controller seem affected.  Blacklist ATAPI DMA on the machine.

Signed-off-by: Tejun Heo <>
Reported-and-tested-by: Jim Bray <>
Cc: Alan Cox <>
Signed-off-by: Jeff Garzik <>
11 years ago[libata] sata_sil: fix used-uninit warning
Jeff Garzik [Fri, 19 Aug 2011 03:52:36 +0000 (23:52 -0400)]
[libata] sata_sil: fix used-uninit warning

Init 'serror' to silence the following warning:

drivers/ata/sata_sil.c: In function ‘sil_interrupt’:
drivers/ata/sata_sil.c:453:14: warning: ‘serror’ may be used uninitialized in
this function [-Wuninitialized]

This is not a 'can never happen' but is nonetheless extremely unlikely.
The easiest and cleanest warning fix is simply to init the var,
rather than worry about marking the var uninit-ok.

Signed-off-by: Jeff Garzik <>
11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Thu, 18 Aug 2011 21:20:00 +0000 (14:20 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/mason/btrfs-unstable

* 'for-linus' of git://
  Btrfs: set i_size properly when fallocating and we already
  btrfs: unlock on error in btrfs_file_llseek()
  btrfs: btrfs_permission's RO check shouldn't apply to device nodes
  Btrfs: truncate pages from clone ioctl target range
  Btrfs: fix uninitialized sync_pending
  Btrfs: fix wrong free space information
  btrfs: memory leak in btrfs_add_inode_defrag()
  Btrfs: use plain page_address() in header fields setget functions
  Btrfs: forced readonly when btrfs_drop_snapshot() fails
  Btrfs: check if there is enough space for balancing smarter
  Btrfs: fix a bug of balance on full multi-disk partitions
  Btrfs: fix an oops of log replay
  Btrfs: detect wether a device supports discard
  Btrfs: force unplugs when switching from high to regular priority bios

11 years agoMerge git://
Linus Torvalds [Thu, 18 Aug 2011 21:19:36 +0000 (14:19 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://
  update cifs version to 1.75
  [CIFS] possible memory corruption on mount
  cifs: demote cERROR in build_path_from_dentry to cFYI

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Thu, 18 Aug 2011 21:18:55 +0000 (14:18 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/roland/infiniband

* 'for-linus' of git://
  IB/iser: Support iSCSI PDU padding
  IBiser: Fix wrong mask when sizeof (dma_addr_t) > sizeof (unsigned long)
  IPoIB: Fix possible NULL dereference in ipoib_start_xmit()

11 years agoMerge git://
Linus Torvalds [Thu, 18 Aug 2011 21:16:13 +0000 (14:16 -0700)]
Merge git://git./linux/kernel/git/hirofumi/fatfs-2.6

* git://
  fat: fat16 support maximum 4GB file/vol size as WinXP or 7.
  fat: fix utf8 iocharset warning message
  fat: fix build warning

11 years agoirqdesc: fix new kernel-doc warning
Randy Dunlap [Thu, 18 Aug 2011 19:19:27 +0000 (12:19 -0700)]
irqdesc: fix new kernel-doc warning

Fix kernel-doc warning in irqdesc.c:

  Warning(kernel/irq/irqdesc.c:353): No description found for parameter 'owner'

Signed-off-by: Randy Dunlap <>
Signed-off-by: Linus Torvalds <>
11 years agoi7core_edac: fixed typo in error count calculation
Mathias Krause [Thu, 18 Aug 2011 07:17:00 +0000 (09:17 +0200)]
i7core_edac: fixed typo in error count calculation

Based on a patch from the PaX Team, found during a clang analysis pass.

Signed-off-by: Mathias Krause <>
Acked-by: Mauro Carvalho Chehab <>
Cc: PaX Team <>
Cc: [v2.6.35+]
Signed-off-by: Linus Torvalds <>
11 years agoupdate cifs version to 1.75
Steve French [Thu, 18 Aug 2011 04:44:35 +0000 (04:44 +0000)]
update cifs version to 1.75

Signed-off-by: Steve French <>
11 years ago[CIFS] possible memory corruption on mount
Steve French [Thu, 18 Aug 2011 04:41:55 +0000 (04:41 +0000)]
[CIFS] possible memory corruption on mount

CIFS cleanup_volume_info_contents() looks like having a memory
corruption problem.
When UNCip is set to "&vol->UNC[2]" in cifs_parse_mount_options(), it
should not be kfree()-ed in cleanup_volume_info_contents().

Introduced in commit b946845a9dc523c759cae2b6a0f6827486c3221a

Signed-off-by: J.R. Okajima <>
Reviewed-by: Jeff Layton <>
CC: Stable <>
Signed-off-by: Steve French <>
11 years agoMerge branch 'btrfs-3.0' into for-linus
Chris Mason [Thu, 18 Aug 2011 14:38:03 +0000 (10:38 -0400)]
Merge branch 'btrfs-3.0' into for-linus

11 years agoBtrfs: set i_size properly when fallocating and we already
Josef Bacik [Thu, 18 Aug 2011 14:36:39 +0000 (10:36 -0400)]
Btrfs: set i_size properly when fallocating and we already

xfstests exposed a problem with preallocate when it fallocates a range that
already has an extent.  We don't set the new i_size properly because we see that
we already have an extent.  This isn't right and we should update i_size if the
space already exists.  With this patch we now pass xfstests 075.  Thanks,

Signed-off-by: Josef Bacik <>
Signed-off-by: Chris Mason <>
11 years agobtrfs: unlock on error in btrfs_file_llseek()
Dan Carpenter [Thu, 18 Aug 2011 14:16:05 +0000 (10:16 -0400)]
btrfs: unlock on error in btrfs_file_llseek()

There were some unlocks on error missing in a recent patch to

Signed-off-by: Dan Carpenter <>
Signed-off-by: Chris Mason <>
11 years agobtrfs: btrfs_permission's RO check shouldn't apply to device nodes
Jeff Mahoney [Mon, 15 Aug 2011 17:27:21 +0000 (17:27 +0000)]
btrfs: btrfs_permission's RO check shouldn't apply to device nodes

This patch tightens the read-only access checks in btrfs_permission to
 match the constraints in inode_permission. Currently, even though the
 device node itself will be unmodified, read-write access to device nodes
 is denied to when the device node resides on a read-only subvolume or a
 is a file that has been marked read-only by the btrfs conversion utility.

 With this patch applied, the check only affects regular files,
 directories, and symlinks. It also restructures the code a bit so that
 we don't duplicate the MAY_WRITE check for both tests.

Signed-off-by: Jeff Mahoney <>
Signed-off-by: Chris Mason <>
11 years agoALSA: hda - Add "PCM" volume to vmaster slave list
Takashi Iwai [Thu, 18 Aug 2011 13:13:17 +0000 (15:13 +0200)]
ALSA: hda - Add "PCM" volume to vmaster slave list

The new parser may use "PCM" volume, but it was missing the vmaster
slave list, thus "Master" volume didn't control it.


Signed-off-by: Takashi Iwai <>
11 years agobefs: Validate length of long symbolic links.
Timo Warns [Wed, 17 Aug 2011 15:59:56 +0000 (17:59 +0200)]
befs: Validate length of long symbolic links.

Signed-off-by: Timo Warns <>
Signed-off-by: Linus Torvalds <>
11 years agoMerge branch 'pm-fixes' of git://
Linus Torvalds [Wed, 17 Aug 2011 20:15:25 +0000 (13:15 -0700)]
Merge branch 'pm-fixes' of git://git./linux/kernel/git/rafael/linux-pm

* 'pm-fixes' of git://
  PM / Domains: Fix build for CONFIG_PM_RUNTIME unset

11 years agomm: fix __page_to_pfn for a const struct page argument
Ian Campbell [Wed, 17 Aug 2011 16:40:33 +0000 (17:40 +0100)]
mm: fix __page_to_pfn for a const struct page argument

This allows the cast in lowmem_page_address (introduced as a warning
fixup to 33dd4e0ec911 "mm: make some struct page's const") to be

Propagate const'ness to page_to_section() as well since it is required
by __page_to_pfn.

Signed-off-by: Ian Campbell <>
Acked-by: Rik van Riel <>
Cc: Andrea Arcangeli <>
Cc: Michel Lespinasse <>
Cc: Mel Gorman <>
Cc: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
11 years agomm: make HASHED_PAGE_VIRTUAL page_address' struct page argument const.
Ian Campbell [Wed, 17 Aug 2011 12:45:09 +0000 (13:45 +0100)]
mm: make HASHED_PAGE_VIRTUAL page_address' struct page argument const.

Followup to 33dd4e0ec911 "mm: make some struct page's const" which missed the

Signed-off-by: Ian Campbell <>
Cc: Andrea Arcangeli <>
Cc: Rik van Riel <>
Cc: Michel Lespinasse <>
Cc: Mel Gorman <>
Cc: Andrew Morton <>
Signed-off-by: Linus Torvalds <>
11 years agoMerge branches 'ipoib' and 'iser' into for-next
Roland Dreier [Wed, 17 Aug 2011 17:57:43 +0000 (10:57 -0700)]
Merge branches 'ipoib' and 'iser' into for-next

11 years agoMerge branch 'perf-fixes-for-linus' of git://
Linus Torvalds [Wed, 17 Aug 2011 17:31:39 +0000 (10:31 -0700)]
Merge branch 'perf-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'perf-fixes-for-linus' of git://
  perf probe: Filter out redundant inline-instances
  perf probe: Search concrete out-of-line instances
  perf probe: Avoid searching variables in intermediate scopes
  perf probe: Fix to search local variables in appropriate scope
  perf probe: Warn when more than one line are given
  perf probe: Fix to walk all inline instances
  perf probe: Fix to search nested inlined functions in CU
  perf probe: Fix line walker to check CU correctly
  perf probe: Fix a memory leak for scopes array
  perf: fix temporary file ownership check
  perf report: Use properly build_id kernel binaries
  perf top browser: Remove spurious helpline update

11 years agoMerge branch 'timers-fixes-for-linus' of git://
Linus Torvalds [Wed, 17 Aug 2011 17:28:33 +0000 (10:28 -0700)]
Merge branch 'timers-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'timers-fixes-for-linus' of git://
  rtc: Limit RTC PIE frequency
  rtc: Fix hrtimer deadlock
  rtc: Handle errors correctly in rtc_irq_set_state()

Fixup trivial conflicts in drivers/rtc/interface.c due to slightly
trivially versions of the same patch coming in two different ways.

11 years agoMerge branch 'core-fixes-for-linus' of git://
Linus Torvalds [Wed, 17 Aug 2011 17:25:08 +0000 (10:25 -0700)]
Merge branch 'core-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus' of git://
  lockdep: Fix wrong assumption in match_held_lock

11 years agoMerge branch 'irq-urgent-for-linus' of git://
Linus Torvalds [Wed, 17 Aug 2011 17:23:50 +0000 (10:23 -0700)]
Merge branch 'irq-urgent-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'irq-urgent-for-linus' of git://
  irq: Track the owner of irq descriptor
  irq: Always set IRQF_ONESHOT if no primary handler is specified
  genirq: Fix wrong bit operation

11 years agoIB/iser: Support iSCSI PDU padding
Or Gerlitz [Mon, 1 Aug 2011 21:14:09 +0000 (21:14 +0000)]
IB/iser: Support iSCSI PDU padding

RFC3270 mandates that iSCSI PDUs are padded to the closest integer
number of four byte words.  Fix the iser code to support that on both
the TX/RX flows.

Signed-off-by: Or Gerlitz <>
Signed-off-by: Roland Dreier <>
11 years agoIBiser: Fix wrong mask when sizeof (dma_addr_t) > sizeof (unsigned long)
Or Gerlitz [Mon, 1 Aug 2011 21:12:09 +0000 (21:12 +0000)]
IBiser: Fix wrong mask when sizeof (dma_addr_t) > sizeof (unsigned long)

The code that prepares the SG associated with SCSI command for FMR was
buggy for systems with DMA addresses that don't fit in unsigned long,
e.g under the 32-bit based XenServer dom0 sizeof(dma_addr_t) is 8.

Fix that by casting to unsigned long long a masking constant used by
the code. This resolves a crash in iser_sg_to_page_vec on this system.

Signed-off-by: Or Gerlitz <>
Signed-off-by: Roland Dreier <>
11 years agofat: fat16 support maximum 4GB file/vol size as WinXP or 7.
Namjae Jeon [Wed, 17 Aug 2011 10:10:09 +0000 (19:10 +0900)]
fat: fat16 support maximum 4GB file/vol size as WinXP or 7.

FAT16 support maximum 4GB vol/file size with 64KB cluster size.

Win NT/XP/7 increased the maximum cluster size to 64KB, and file/vol
size increased 4GB also.  Although increasing, the file size of linux
FAT is still limited at 2GB.

I found that it is limited by sb->maxbytes(0x7fffffff) when partition
is formatted by FAT16.  sb->s_maxbytes in fill_super should be set to
0xffffffff like fat32.

Signed-off-by: Namjae Jeon <>
Signed-off-by: OGAWA Hirofumi <>
11 years agofat: fix utf8 iocharset warning message
Mihai Moldovan [Wed, 17 Aug 2011 10:10:08 +0000 (19:10 +0900)]
fat: fix utf8 iocharset warning message

The fat_msg function already formats the given message and appends
a newline to it - we don't need to do this in the passed message
string as well, or will end up with a blank line printed in the
kernel log ring buffer.

Also change the loglevel from error to warning.

Signed-off-by: Mihai Moldovan <>
Signed-off-by: OGAWA Hirofumi <>
11 years agofat: fix build warning
Jonas Aberg [Wed, 17 Aug 2011 10:10:06 +0000 (19:10 +0900)]
fat: fix build warning

This fixes a compile warning (unititialized variable) in
the fat filesystem code.

Signed-off-by: Jonas Aberg <>
Signed-off-by: Lee Jones <>
Signed-off-by: Linus Walleij <>
Signed-off-by: OGAWA Hirofumi <>
11 years agoBtrfs: truncate pages from clone ioctl target range
Sage Weil [Wed, 10 Aug 2011 18:04:04 +0000 (18:04 +0000)]
Btrfs: truncate pages from clone ioctl target range

We need to truncate page cache pages for the clone ioctl target range or
else we'll confuse ourselves to no end.  If the old data was cached, we
used to still see it (until remount).  If the page was partially updated
we used to get a mix of old and new data.

Signed-off-by: Sage Weil <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: fix uninitialized sync_pending
Miao Xie [Fri, 5 Aug 2011 09:32:37 +0000 (09:32 +0000)]
Btrfs: fix uninitialized sync_pending

sync_pending is uninitialized before it be used, fix it.

Signed-off-by: Miao Xie <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: fix wrong free space information
Miao Xie [Fri, 5 Aug 2011 09:32:35 +0000 (09:32 +0000)]
Btrfs: fix wrong free space information

Btrfs subtracted the size of the allocated space twice when it allocated
the space from the bitmap in the cluster, it broke the free space information
and led to oops finally.

And this patch also fixes the bug that ctl->free_space was subtracted
without lock.

Reported-by: Liu Bo <>
Signed-off-by: Miao Xie <>
Signed-off-by: Chris Mason <>
11 years agobtrfs: memory leak in btrfs_add_inode_defrag()
Dan Carpenter [Fri, 5 Aug 2011 14:19:00 +0000 (14:19 +0000)]
btrfs: memory leak in btrfs_add_inode_defrag()

We don't use the defrag struct on this path.

Signed-off-by: Dan Carpenter <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: use plain page_address() in header fields setget functions
Li Zefan [Wed, 3 Aug 2011 08:11:41 +0000 (08:11 +0000)]
Btrfs: use plain page_address() in header fields setget functions

We've stopped using highmem for extent buffers.

Signed-off-by: Li Zefan <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: forced readonly when btrfs_drop_snapshot() fails
Tsutomu Itoh [Tue, 9 Aug 2011 07:11:13 +0000 (07:11 +0000)]
Btrfs: forced readonly when btrfs_drop_snapshot() fails

The filesystem turns readonly instead of returning the error to the
caller when detected error in btrfs_drop_snapshot().
and, because the caller doesn't check the error, the function type is
changed to 'void'.

Signed-off-by: Tsutomu Itoh <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: check if there is enough space for balancing smarter
liubo [Wed, 3 Aug 2011 10:15:25 +0000 (10:15 +0000)]
Btrfs: check if there is enough space for balancing smarter

When checking if there is enough space for balancing a block group,
since we do not take raid types into consideration, we do not account
corrent amounts of space that we needed.  This makes us do some extra
work before we get ENOSPC.

Signed-off-by: Liu Bo <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: fix a bug of balance on full multi-disk partitions
liubo [Tue, 2 Aug 2011 02:39:03 +0000 (02:39 +0000)]
Btrfs: fix a bug of balance on full multi-disk partitions

When balancing, we'll first try to shrink devices for some space,
but if it is working on a full multi-disk partition with raid protection,
we may encounter a bug, that is, while shrinking, total_bytes may be less
than bytes_used, and btrfs may allocate a dev extent that accesses out of
device's bounds.

Then we will not be able to write or read the data which stores at the end
of the device, and get the followings:

device fsid 0939f071-7ea3-46c8-95df-f176d773bfb6 devid 1 transid 10 /dev/sdb5
Btrfs detected SSD devices, enabling SSD mode
btrfs: relocating block group 476315648 flags 9
btrfs: found 4 extents
attempt to access beyond end of device
sdb5: rw=145, want=546176, limit=546147
attempt to access beyond end of device
sdb5: rw=145, want=546304, limit=546147
attempt to access beyond end of device
sdb5: rw=145, want=546432, limit=546147
attempt to access beyond end of device
sdb5: rw=145, want=546560, limit=546147
attempt to access beyond end of device

Signed-off-by: Liu Bo <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: fix an oops of log replay
liubo [Sat, 6 Aug 2011 08:35:23 +0000 (08:35 +0000)]
Btrfs: fix an oops of log replay

When btrfs recovers from a crash, it may hit the oops below:

------------[ cut here ]------------
kernel BUG at fs/btrfs/inode.c:4580!
RIP: 0010:[<ffffffffa03df251>]  [<ffffffffa03df251>] btrfs_add_link+0x161/0x1c0 [btrfs]
Call Trace:
 [<ffffffffa03e7b31>] ? btrfs_inode_ref_index+0x31/0x80 [btrfs]
 [<ffffffffa04054e9>] add_inode_ref+0x319/0x3f0 [btrfs]
 [<ffffffffa0407087>] replay_one_buffer+0x2c7/0x390 [btrfs]
 [<ffffffffa040444a>] walk_down_log_tree+0x32a/0x480 [btrfs]
 [<ffffffffa0404695>] walk_log_tree+0xf5/0x240 [btrfs]
 [<ffffffffa0406cc0>] btrfs_recover_log_trees+0x250/0x350 [btrfs]
 [<ffffffffa0406dc0>] ? btrfs_recover_log_trees+0x350/0x350 [btrfs]
 [<ffffffffa03d18b2>] open_ctree+0x1442/0x17d0 [btrfs]

This comes from that while replaying an inode ref item, we forget to
check those old conflicting DIR_ITEM and DIR_INDEX items in fs/file tree,
then we will come to conflict corners which lead to BUG_ON().

Signed-off-by: Liu Bo <>
Tested-by: Andy Lutomirski <>
Signed-off-by: Chris Mason <>
11 years agoBtrfs: detect wether a device supports discard
Josef Bacik [Thu, 4 Aug 2011 14:52:27 +0000 (14:52 +0000)]
Btrfs: detect wether a device supports discard

We have a problem where if a user specifies discard but doesn't actually support
it we will return EOPNOTSUPP from btrfs_discard_extent.  This is a problem
because this gets called (in a fashion) from the tree log recovery code, which
has a nice little BUG_ON(ret) after it, which causes us to fail the tree log
replay.  So instead detect wether our devices support discard when we're adding
them and then don't issue discards if we know that the device doesn't support
it.  And just for good measure set ret = 0 in btrfs_issue_discard just in case
we still get EOPNOTSUPP so we don't screw anybody up like this again.  Thanks,

Signed-off-by: Josef Bacik <>
Signed-off-by: Chris Mason <>
11 years agoMerge branch 'kvm-updates/3.1' of git://
Linus Torvalds [Tue, 16 Aug 2011 18:14:44 +0000 (11:14 -0700)]
Merge branch 'kvm-updates/3.1' of git://git./virt/kvm/kvm

* 'kvm-updates/3.1' of git://
  KVM: uses TASKSTATS, depends on NET
  KVM: fix TASK_DELAY_ACCT kconfig warning

11 years agoMerge branch 'fixallnoconfig' of git://
Linus Torvalds [Tue, 16 Aug 2011 17:40:29 +0000 (10:40 -0700)]
Merge branch 'fixallnoconfig' of git://git./linux/kernel/git/aegl/linux-2.6

* 'fixallnoconfig' of git://
  [IA64] fix "allnoconfig" build

11 years agoIPoIB: Fix possible NULL dereference in ipoib_start_xmit()
Bernd Schubert [Tue, 16 Aug 2011 10:56:54 +0000 (10:56 +0000)]
IPoIB: Fix possible NULL dereference in ipoib_start_xmit()

Fix a bug introduced in 69cce1d14049 ("net: Abstract dst->neighbour
accesses behind helpers.") where we might dereference skb_dst(skb)
even if it is NULL, which causes:

    [  240.944030] BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
    [  240.948007] IP: [<ffffffffa0366ce9>] ipoib_start_xmit+0x39/0x280 [ib_ipoib]
    [  240.948007] Call Trace:
    [  240.948007]  <IRQ>
    [  240.948007]  [<ffffffff812cd5e0>] dev_hard_start_xmit+0x2a0/0x590
    [  240.948007]  [<ffffffff8131f680>] ? arp_create+0x70/0x200
    [  240.948007]  [<ffffffff812e8e1f>] sch_direct_xmit+0xef/0x1c0

Signed-off-by: Bernd Schubert <>
Signed-off-by: Roland Dreier <>
11 years agoKVM: uses TASKSTATS, depends on NET
Randy Dunlap [Tue, 2 Aug 2011 19:54:31 +0000 (12:54 -0700)]
KVM: uses TASKSTATS, depends on NET

CONFIG_TASKSTATS just had a change to use netlink, including
a change to "depends on NET".  Since "select" does not follow
dependencies, KVM also needs to depend on NET to prevent build
errors when CONFIG_NET is not enabled.

Sample of the reported "undefined reference" build errors:

taskstats.c:(.text+0x8f686): undefined reference to `nla_put'
taskstats.c:(.text+0x8f721): undefined reference to `nla_reserve'
taskstats.c:(.text+0x8f8fb): undefined reference to `init_net'
taskstats.c:(.text+0x8f905): undefined reference to `netlink_unicast'
taskstats.c:(.text+0x8f934): undefined reference to `kfree_skb'
taskstats.c:(.text+0x8f9e9): undefined reference to `skb_clone'
taskstats.c:(.text+0x90060): undefined reference to `__alloc_skb'
taskstats.c:(.text+0x901e9): undefined reference to `skb_put'
taskstats.c:(.init.text+0x4665): undefined reference to `genl_register_family'
taskstats.c:(.init.text+0x4699): undefined reference to `genl_register_ops'
taskstats.c:(.init.text+0x4710): undefined reference to `genl_unregister_ops'
taskstats.c:(.init.text+0x471c): undefined reference to `genl_unregister_family'

Signed-off-by: Randy Dunlap <>
Signed-off-by: Marcelo Tosatti <>
11 years agoxen: self-balloon needs module.h
Randy Dunlap [Tue, 16 Aug 2011 04:41:43 +0000 (21:41 -0700)]
xen: self-balloon needs module.h

Fix build errors (found when CONFIG_SYSFS is not enabled):

  drivers/xen/xen-selfballoon.c:446: warning: data definition has no type or storage class
  drivers/xen/xen-selfballoon.c:446: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
  drivers/xen/xen-selfballoon.c:446: warning: parameter names (without types) in function declaration
  drivers/xen/xen-selfballoon.c:485: error: expected declaration specifiers or '...' before string constant
  drivers/xen/xen-selfballoon.c:485: warning: data definition has no type or storage class
  drivers/xen/xen-selfballoon.c:485: warning: type defaults to 'int' in declaration of 'MODULE_LICENSE'
  drivers/xen/xen-selfballoon.c:485: warning: function declaration isn't a prototype

Signed-off-by: Randy Dunlap <>
Acked-by: Konrad Rzeszutek Wilk <>
Signed-off-by: Linus Torvalds <>
11 years agogma500: kill MIPI interface types
Alan Cox [Tue, 16 Aug 2011 13:18:48 +0000 (14:18 +0100)]
gma500: kill MIPI interface types

Kirill Shutemov found problems with the non-upstream IMG driver where the
use of extra DRM encoder/connector types caused random crashes when the DRM
layer tried to display their matching name. This removes the MIPI types
matching the changes Pauli Nieminen made to the non upstream driver set.

As Pauli points out:
" MIPI (or DSI) is protocol specification on top of LVDS serial bus. That
 makes it resonable to call MIPI connectors and encoders LVDS."

(and indeed they may also be HDMI convertors or similar when we want to
 report a more useful to end user result)

Signed-off-by: Alan Cox <>
Signed-off-by: Linus Torvalds <>
11 years agocifs: demote cERROR in build_path_from_dentry to cFYI
Jeff Layton [Mon, 8 Aug 2011 15:50:24 +0000 (11:50 -0400)]
cifs: demote cERROR in build_path_from_dentry to cFYI

Running the cthon tests on a recent kernel caused this message to pop

    CIFS VFS: did not end path lookup where expected namelen is 0

Some added debugging showed that namelen and dfsplen were both 0 when
this occurred. That means that the read_seqretry returned true.

Assuming that the comment inside the if statement is true, this should
be harmless and just means that we raced with a rename. If that is the
case, then there's no need for alarm and we can demote this to cFYI.

While we're at it, print the dfsplen too so that we can see what
happened here if the message pops during debugging.

Cc: Al Viro <>
Signed-off-by: Jeff Layton <>
Signed-off-by: Steve French <>
11 years agoALSA: hda - Fix duplicated capture-volume creation for ALC268 models
Takashi Iwai [Tue, 16 Aug 2011 12:23:20 +0000 (14:23 +0200)]
ALSA: hda - Fix duplicated capture-volume creation for ALC268 models

Fix the duplicated creation of capture-mixer elements for some static
ALC268 configurations.  The capture mixers must be put to cap_mixer field
instead of mixers array.

Signed-off-by: Takashi Iwai <>
11 years agoregmap: using module facilities requires module.h
Stephen Rothwell [Mon, 15 Aug 2011 23:36:06 +0000 (09:36 +1000)]
regmap: using module facilities requires module.h

Commit b33f9cbd67ba ("regmap: Specify a module license") added a
MODULES_LICENSE to this file without adding an include of module.h.

module.h should have been included anyway, since this file has
EXPORT_SYMBOLs as well.  With the pending module.h split up, this would
probably have caused build problems.

Cc: Stephen Warren <>
Cc: Mark Brown <>
Signed-off-by: Stephen Rothwell <>
Signed-off-by: Linus Torvalds <>
11 years agoMerge branch 'docs-move' of git://
Linus Torvalds [Tue, 16 Aug 2011 02:24:42 +0000 (19:24 -0700)]
Merge branch 'docs-move' of git://git./linux/kernel/git/rdunlap/linux-docs

* 'docs-move' of git://
  Docs: MSI-HOWTO: MSI -> MSIs
  Docs: MSI-HOWTO: Insert a comma
  Docs: MSI-HOWTO: can -> could
  Docs: MSI-HOWTO: Use `unknown ...' rather than `... know about.'
  Docs: MSI-HOWTO: may -> might
  Docs: MSI-HOWTO: Insert a comma
  Docs: MSI-HOWTO: API -> function
  Docs: MSI-HOWTO: , -> ;
  Docs: MSI-HOWTO: Move a sentence to another paragraph
  Docs: MSI-HOWTO: Insert `that'
  Docs: MSI-HOWTO: Offset modifier with a comma, and insert `yet' for emphasis
  Docs: MSI-HOWTO: Put the `because' subordinate clause first
  Docs: MSI-HOWTO: Streamline some wording
  Docs: MSI-HOWTO: `asked for' -> `requested'
  Docs: MSI-HOWTO: Use present tense and streamline some wording
  Docs: MSI-HOWTO: Use the subjunctive, and change `can' to `may'

11 years agoMerge git://
Linus Torvalds [Tue, 16 Aug 2011 02:16:01 +0000 (19:16 -0700)]
Merge git://git./linux/kernel/git/davem/sparc

* git://
  sparc32: unbreak arch_write_unlock()
  sparc64: remove unnecessary macros from spinlock_64.h

11 years agoMerge branch 'drm-intel-fixes' of git://
Linus Torvalds [Tue, 16 Aug 2011 02:14:18 +0000 (19:14 -0700)]
Merge branch 'drm-intel-fixes' of git://git./linux/kernel/git/keithp/linux-2.6

* 'drm-intel-fixes' of git://
  drm/i915: Cannot set clock gating under UMS
  drm/i915: Can't do accurate vblank timestamps with UMS
  Not all systems expose a firmware or platform mechanism for changing the backlight intensity on i915, so add native driver support.
  drm/i915: split out PCH refclk update code
  drm/i915: show interrupt info on IVB
  drm/i915: Remove unused 'reg' argument to dp_pipe_enabled
  drm/i915: Fix PCH port pipe select in CPT disable paths
  drm/i915: Leave LVDS registers unlocked
  drm/i915: Wait for LVDS panel power sequence

11 years agox86: fix mm/fault.c build
Randy Dunlap [Mon, 15 Aug 2011 17:18:46 +0000 (10:18 -0700)]
x86: fix mm/fault.c build

arch/x86/mm/fault.c needs to include asm/vsyscall.h to fix a
build error:

  arch/x86/mm/fault.c: In function '__bad_area_nosemaphore':
  arch/x86/mm/fault.c:728: error: 'VSYSCALL_START' undeclared (first use in this function)

Signed-off-by: Randy Dunlap <>
Signed-off-by: Linus Torvalds <>
11 years agosparc64: Set HAVE_C_RECORDMCOUNT
David S. Miller [Mon, 15 Aug 2011 21:45:17 +0000 (14:45 -0700)]

Signed-off-by: David S. Miller <>
11 years agosparc32: unbreak arch_write_unlock()
Mikael Pettersson [Mon, 15 Aug 2011 10:11:50 +0000 (10:11 +0000)]
sparc32: unbreak arch_write_unlock()

The sparc32 version of arch_write_unlock() is just a plain assignment.
Unfortunately this allows the compiler to schedule side-effects in a
protected region to occur after the HW-level unlock, which is broken.
E.g., the following trivial test case gets miscompiled:

#include <linux/spinlock.h>
rwlock_t lock;
int counter;
void foo(void) { write_lock(&lock); ++counter; write_unlock(&lock); }

Fixed by adding a compiler memory barrier to arch_write_unlock().  The
sparc64 version combines the barrier and assignment into a single asm(),
and implements the operation as a static inline, so that's what I did too.

Compile-tested with sparc32_defconfig + CONFIG_SMP=y.

Signed-off-by: Mikael Pettersson <>
Signed-off-by: David S. Miller <>
11 years agosparc64: remove unnecessary macros from spinlock_64.h
Mikael Pettersson [Mon, 15 Aug 2011 10:10:31 +0000 (10:10 +0000)]
sparc64: remove unnecessary macros from spinlock_64.h

The sparc64 spinlock_64.h contains a number of operations defined
first as static inline functions, and then as macros with the same
names and parameters as the functions.  Maybe this was needed at
some point in the past, but now nothing seems to depend on these
macros (checked with a recursive grep looking for ifdefs on these
names).  Other archs don't define these identity-macros.

So this patch deletes these unnecessary macros.

Compile-tested with sparc64_defconfig.

Signed-off-by: Mikael Pettersson <>
Signed-off-by: David S. Miller <>
11 years agoblock: fix flush machinery for stacking drivers with differring flush flags
Jeff Moyer [Mon, 15 Aug 2011 19:37:25 +0000 (21:37 +0200)]
block: fix flush machinery for stacking drivers with differring flush flags

Commit ae1b1539622fb46e51b4d13b3f9e5f4c713f86ae, block: reimplement
FLUSH/FUA to support merge, introduced a performance regression when
running any sort of fsyncing workload using dm-multipath and certain
storage (in our case, an HP EVA).  The test I ran was fs_mark, and it
dropped from ~800 files/sec on ext4 to ~100 files/sec.  It turns out
that dm-multipath always advertised flush+fua support, and passed
commands on down the stack, where those flags used to get stripped off.
The above commit changed that behavior:

static inline struct request *__elv_next_request(struct request_queue *q)
        struct request *rq;

        while (1) {
-               while (!list_empty(&q->queue_head)) {
+               if (!list_empty(&q->queue_head)) {
                        rq = list_entry_rq(q->;
-                       if (!(rq->cmd_flags & (REQ_FLUSH | REQ_FUA)) ||
-                           (rq->cmd_flags & REQ_FLUSH_SEQ))
-                               return rq;
-                       rq = blk_do_flush(q, rq);
-                       if (rq)
-                               return rq;
+                       return rq;

Note that previously, a command would come in here, have
REQ_FLUSH|REQ_FUA set, and then get handed off to blk_do_flush:

struct request *blk_do_flush(struct request_queue *q, struct request *rq)
        unsigned int fflags = q->flush_flags; /* may change, cache it */
        bool has_flush = fflags & REQ_FLUSH, has_fua = fflags & REQ_FUA;
        bool do_preflush = has_flush && (rq->cmd_flags & REQ_FLUSH);
        bool do_postflush = has_flush && !has_fua && (rq->cmd_flags &
        unsigned skip = 0;
        if (blk_rq_sectors(rq) && !do_preflush && !do_postflush) {
                rq->cmd_flags &= ~REQ_FLUSH;
if (!has_fua)
rq->cmd_flags &= ~REQ_FUA;
        return rq;

So, the flush machinery was bypassed in such cases (q->flush_flags == 0
&& rq->cmd_flags & (REQ_FLUSH|REQ_FUA)).

Now, however, we don't get into the flush machinery at all.  Instead,
__elv_next_request just hands a request with flush and fua bits set to
the scsi_request_fn, even if the underlying request_queue does not
support flush or fua.

The agreed upon approach is to fix the flush machinery to allow
stacking.  While this isn't used in practice (since there is only one
request-based dm target, and that target will now reflect the flush
flags of the underlying device), it does future-proof the solution, and
make it function as designed.

In order to make this work, I had to add a field to the struct request,
inside the flush structure (to store the original req->end_io).  Shaohua
had suggested overloading the union with rb_node and completion_data,
but the completion data is used by device mapper and can also be used by
other drivers.  So, I didn't see a way around the additional field.

I tested this patch on an HP EVA with both ext4 and xfs, and it recovers
the lost performance.  Comments and other testers, as always, are


Signed-off-by: Jeff Moyer <>
Acked-by: Tejun Heo <>
Signed-off-by: Jens Axboe <>
11 years agodrm/i915: Cannot set clock gating under UMS
Keith Packard [Sat, 13 Aug 2011 00:07:18 +0000 (17:07 -0700)]
drm/i915: Cannot set clock gating under UMS

The clock gating functions are only assigned under KMS, so don't try
to call them under UMS.

Signed-off-by: Keith Packard <>
Tested-by: Justin P. Mattock <>
11 years agodrm/i915: Can't do accurate vblank timestamps with UMS
Keith Packard [Sat, 13 Aug 2011 00:05:54 +0000 (17:05 -0700)]
drm/i915: Can't do accurate vblank timestamps with UMS

Disable this feature when KMS is not running by setting the
driver->get_vblank_timestamp function pointer to NULL.

Signed-off-by: Keith Packard <>
Tested-by: Justin P. Mattock <>
11 years agoNot all systems expose a firmware or platform mechanism for changing the backlight...
Matthew Garrett [Fri, 12 Aug 2011 10:11:33 +0000 (12:11 +0200)]
Not all systems expose a firmware or platform mechanism for changing the backlight intensity on i915, so add native driver support.

Signed-off-by: Matthew Garrett <>
Cc: Richard Purdie <>
Cc: Chris Wilson <>
Cc: David Airlie <>
Cc: Alex Deucher <>
Cc: Ben Skeggs <>
Cc: Zhang Rui <>
Cc: Len Brown <>
Cc: Jesse Barnes <>
Tested-by: Sedat Dilek <>
Tested-by: Michel Alexandre Salim <>
Tested-by: Kamal Mostafa <>
Signed-off-by: Andrew Morton <>
Signed-off-by: Keith Packard <>
11 years agoMerge git://
Linus Torvalds [Mon, 15 Aug 2011 15:46:11 +0000 (08:46 -0700)]
Merge git://git./linux/kernel/git/rusty/linux-2.6-for-linus

* git://
  lguest: allow booting guest with CONFIG_RELOCATABLE=y
  virtio: Add text copy of spec to Documentation/virtual.

11 years agoMerge branch 'fixes' of git://
Linus Torvalds [Mon, 15 Aug 2011 15:40:49 +0000 (08:40 -0700)]
Merge branch 'fixes' of git://git./linux/kernel/git/ieee1394/linux1394-2.6

* 'fixes' of git://
  firewire: ohci: fix DMA unmapping in an error path
  firewire: cdev: fix 32 bit userland on 64 bit kernel compat corner cases

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Mon, 15 Aug 2011 15:40:24 +0000 (08:40 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/shaggy/jfs-2.6

* 'for-linus' of git://
  jfs: flush journal completely before releasing metadata inodes

11 years agoMerge branch 'drm-fixes' of git://
Linus Torvalds [Mon, 15 Aug 2011 15:39:10 +0000 (08:39 -0700)]
Merge branch 'drm-fixes' of git://git./linux/kernel/git/airlied/drm-2.6

* 'drm-fixes' of git://
  drm/radeon/kms: don't try to be smart in the hpd handler
  drm/radeon: re-POST the asic on Apple hardware when booted via EFI
  drm/radeon: Allow panel preferred EDID to override BIOS native mode
  drm/radeon/kms: make some watermark messages debug only
  drm/radeon/kms: fix regression is handling >2 heads on cedar/caicos
  drm/radeon/kms: don't enable connectors that are off in the hotplug handler

11 years agoMerge git://
Linus Torvalds [Mon, 15 Aug 2011 15:36:30 +0000 (08:36 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://
  cifs: Do not set cifs/ntfs acl using a file handle (try #4)
  [CIFS] Cleanup use of CONFIG_CIFS_STATS2 ifdef to make transport routines more readable

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Mon, 15 Aug 2011 15:35:54 +0000 (08:35 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/broonie/regmap

* 'for-linus' of git://
  regmap: Specify a module license
  regmap: Fix bulk reads

11 years agodrm/radeon/kms: don't try to be smart in the hpd handler
Alex Deucher [Sat, 13 Aug 2011 17:36:13 +0000 (13:36 -0400)]
drm/radeon/kms: don't try to be smart in the hpd handler

Attempting to try and turn off disconnected display hw in the
hotput handler lead to more problems than it helped.  For
now just register an event and only attempt the do something
interesting with DP.  Other connectors are just too problematic:
- Some systems have an HPD pin assigned to LVDS, but it's rarely
if ever connected properly and we don't really care about hpd
events on LVDS anyway since it's always connected.
- The HPD pin is wired up correctly for eDP, but we don't really
have to do anything since the events since it's always connected.
- Some HPD pins fire more than once when you connect/disconnect
- etc.


Signed-off-by: Alex Deucher <>
Signed-off-by: Dave Airlie <>
11 years agoALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist
Daniel T Chen [Mon, 15 Aug 2011 02:43:01 +0000 (22:43 -0400)]
ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist

The original reporter needs 'Headphone Jack Sense' enabled to have
audible audio, so add his PCI SSID to the whitelist.

Reported-and-tested-by: Muhammad Khurram Khan
Cc: <>
Signed-off-by: Daniel T Chen <>
Signed-off-by: Takashi Iwai <>
11 years agolguest: allow booting guest with CONFIG_RELOCATABLE=y
Rusty Russell [Mon, 15 Aug 2011 00:45:10 +0000 (10:15 +0930)]
lguest: allow booting guest with CONFIG_RELOCATABLE=y

The CONFIG_RELOCATABLE code tries to align the unpack destination to
the value of 'kernel_alignment' in the setup_hdr.  If that's 0, it
tries to unpack to address 0, which in fact causes the gunzip code
to call 'error("Out of memory while allocating output buffer")'.

The bootloader (ie. the lguest Launcher in this case) should be doing
setting this field; the normal bzImage is 16M, we can use the same.

Reported-by: Stefanos Geraggelos <>
Signed-off-by: Rusty Russell <>
11 years agovirtio: Add text copy of spec to Documentation/virtual.
Rusty Russell [Mon, 15 Aug 2011 00:45:10 +0000 (10:15 +0930)]
virtio: Add text copy of spec to Documentation/virtual.

As suggested by Christoph Hellwig.

Signed-off-by: Rusty Russell <>
11 years agoLinux 3.1-rc2 v3.1-rc2
Linus Torvalds [Sun, 14 Aug 2011 22:09:08 +0000 (15:09 -0700)]
Linux 3.1-rc2

11 years agomm: fix wrong vmap address calculations with odd NR_CPUS values
Clemens Ladisch [Tue, 21 Jun 2011 20:09:50 +0000 (22:09 +0200)]
mm: fix wrong vmap address calculations with odd NR_CPUS values

Commit db64fe02258f ("mm: rewrite vmap layer") introduced code that does
address calculations under the assumption that VMAP_BLOCK_SIZE is a
power of two.  However, this might not be true if CONFIG_NR_CPUS is not
set to a power of two.

Wrong vmap_block index/offset values could lead to memory corruption.
However, this has never been observed in practice (or never been
diagnosed correctly); what caught this was the BUG_ON in vb_alloc() that
checks for inconsistent vmap_block indices.

To fix this, ensure that VMAP_BLOCK_SIZE always is a power of two.

Reported-by: Pavel Kysilka <>
Reported-by: Matias A. Fonzo <>
Signed-off-by: Clemens Ladisch <>
Signed-off-by: Stefan Richter <>
Cc: Nick Piggin <>
Cc: Jeremy Fitzhardinge <>
Cc: Krzysztof Helt <>
Cc: Andrew Morton <>
Cc: 2.6.28+ <>
Signed-off-by: Linus Torvalds <>
11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Sun, 14 Aug 2011 19:28:15 +0000 (12:28 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/cjb/mmc

* 'for-linus' of git://
  mmc: remove unused "ddr" parameter in struct mmc_ios
  mmc: dw_mmc: Fix DDR mode support.
  mmc: core: use defined R1_STATE_PRG macro for card status
  mmc: sdhci: use f_max instead of host->clock for timeouts
  mmc: sdhci: move timeout_clk calculation farther down
  mmc: sdhci: check host->clock before using it as a denominator
  mmc: Revert "mmc: sdhci: Fix SDHCI_QUIRK_TIMEOUT_USES_SDCLK"
  mmc: tmio: eliminate unused variable 'mmc' warning
  mmc: esdhc-imx: fix card interrupt loss on freescale eSDHC
  mmc: sdhci-s3c: Fix build for header change
  mmc: dw_mmc: Fix mask in IDMAC_SET_BUFFER1_SIZE macro
  mmc: cb710: fix possible pci_dev leak in cb710_pci_configure()
  mmc: core: Detect eMMC v4.5 ext_csd entries
  mmc: mmc_test: avoid stalled file in debugfs
  mmc: sdhci-s3c: add BROKEN_ADMA_ZEROLEN_DESC quirk
  mmc: sdhci: pxav3: controller needs 32 bit ADMA addressing
  mmc: sdhci: fix retuning timer wrongly deleted in sdhci_tasklet_finish

11 years agoALSA: snd_usb_caiaq: track submitted output urbs
Daniel Mack [Sun, 14 Aug 2011 09:31:16 +0000 (11:31 +0200)]
ALSA: snd_usb_caiaq: track submitted output urbs

The snd_usb_caiaq driver currently assumes that output urbs are serviced
in time and doesn't track when and whether they are given back by the
USB core. That usually works fine, but due to temporary limitations of
the XHCI stack, we faced that urbs were submitted more than once with
this approach.

As it's no good practice to fire and forget urbs anyway, this patch
introduces a proper bit mask to track which requests have been submitted
and given back.

That alone however doesn't make the driver work in case the host
controller is broken and doesn't give back urbs at all, and the output
stream will stop once all pre-allocated output urbs are consumed. But
it does prevent crashes of the controller stack in such cases.

See for more details.

Signed-off-by: Daniel Mack <>
Reported-and-tested-by: Matej Laitl <>
Cc: Sarah Sharp <>
Signed-off-by: Takashi Iwai <>
11 years agoPM / Domains: Fix build for CONFIG_PM_RUNTIME unset
Rafael J. Wysocki [Sun, 14 Aug 2011 11:34:31 +0000 (13:34 +0200)]
PM / Domains: Fix build for CONFIG_PM_RUNTIME unset

Function genpd_queue_power_off_work() is not defined for
CONFIG_PM_RUNTIME, so pm_genpd_poweroff_unused() causes a build
error to happen in that case.  Fix the problem by making
pm_genpd_poweroff_unused() depend on CONFIG_PM_RUNTIME too.

Signed-off-by: Rafael J. Wysocki <>
11 years agoMerge branch 'perf/core' of git://
Ingo Molnar [Sun, 14 Aug 2011 09:48:29 +0000 (11:48 +0200)]
Merge branch 'perf/core' of git://git./linux/kernel/git/acme/linux into perf/urgent

11 years agoMerge branch 'hwmon-for-linus' of git://
Linus Torvalds [Sun, 14 Aug 2011 01:37:28 +0000 (18:37 -0700)]
Merge branch 'hwmon-for-linus' of git://git./linux/kernel/git/groeck/staging

* 'hwmon-for-linus' of git://
  hwmon: (ibmaem) add missing kfree
  hwmon: (pmbus/lm25066) Ignore byte writes to non-zero pages
  hwmon: (pmbus) Virtualize pmbus_write_byte

11 years agoMerge branch 'for-linus' of git://
Linus Torvalds [Sun, 14 Aug 2011 01:36:28 +0000 (18:36 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/tiwai/sound-2.6

* 'for-linus' of git://
  ASoC: Fix compile warning in wm8750.c
  ASoC: omap: Update e-mail address of Jarkko Nikula
  ASoC: SAMSUNG: Add I2S0 internal dma driver
  ASoC: Terminate WM8750 SPI device ID table
  ASoC: Add missing break in WM8994 probe
  ALSA: snd-usb-caiaq: Correct offset fields of outbound iso_frame_desc
  ALSA: azt3328 - adjust error handling code to include debugging code
  ALSA: hda - Add CONFIG_SND_HDA_POWER_SAVE to stac_vrefout_set()
  ALSA: usb-audio - Add quirk for BOSS Micro BR-80
  ASoC: Fix typo in wm8750 spi_ids
  ASoC: Fix warning in Speyside WM8962
  ASoC: Fix SPI driver binding for WM8987
  ASoC: Fix binding of WM8750 on Jive
  ASoC: WM8903: Free IRQ on device removal
  ASoC: Tegra: wm8903 machine driver: Allow re-insertion of module
  ASoC: Tegra: tegra_pcm_deallocate_dma_buffer: Don't OOPS

11 years agoDocumentation: befs.txt: no maintainer, orphaned
Marcos Souza [Sat, 13 Aug 2011 19:34:59 +0000 (12:34 -0700)]
Documentation: befs.txt: no maintainer, orphaned

Remove the name of Sergey Kostyliov as maintainer of befs.
In the MAINTAINERS file, befs is orphaned.

Signed-off-by: Marcos Souza <>
Signed-off-by: Randy Dunlap <>
Signed-off-by: Linus Torvalds <>