1. 12 Apr, 2013 13 commits
    • Shan Hai's avatar
      libata: Set max sector to 65535 for Slimtype DVD A DS8A8SH drive · 284aeebb
      Shan Hai authored
      commit a32450e1 upstream.
      
      The Slimtype DVD A  DS8A8SH drive locks up when max sector is smaller than
      65535, and the blow backtrace is observed on locking up:
      
      INFO: task flush-8:32:1130 blocked for more than 120 seconds.
      "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      flush-8:32      D ffffffff8180cf60     0  1130      2 0x00000000
       ffff880273aef618 0000000000000046 0000000000000005 ffff880273aee000
       ffff880273aee000 ffff880273aeffd8 ffff880273aee010 ffff880273aee000
       ffff880273aeffd8 ffff880273aee000 ffff88026e842ea0 ffff880274a10000
      Call Trace:
       [<ffffffff8168fc2d>] schedule+0x5d/0x70
       [<ffffffff8168fccc>] io_schedule+0x8c/0xd0
       [<ffffffff81324461>] get_request+0x731/0x7d0
       [<ffffffff8133dc60>] ? cfq_allow_merge+0x50/0x90
       [<ffffffff81083aa0>] ? wake_up_bit+0x40/0x40
       [<ffffffff81320443>] ? bio_attempt_back_merge+0x33/0x110
       [<ffffffff813248ea>] blk_queue_bio+0x23a/0x3f0
       [<ffffffff81322176>] generic_make_request+0xc6/0x120
       [<ffffffff81322308>] submit_bio+0x138/0x160
       [<ffffffff811d7596>] ? bio_alloc_bioset+0x96/0x120
       [<ffffffff811d1f61>] submit_bh+0x1f1/0x220
       [<ffffffff811d48b8>] __block_write_full_page+0x228/0x340
       [<ffffffff811d3650>] ? attach_nobh_buffers+0xc0/0xc0
       [<ffffffff811d8960>] ? I_BDEV+0x10/0x10
       [<ffffffff811d8960>] ? I_BDEV+0x10/0x10
       [<ffffffff811d4ab6>] block_write_full_page_endio+0xe6/0x100
       [<ffffffff811d4ae5>] block_write_full_page+0x15/0x20
       [<ffffffff811d9268>] blkdev_writepage+0x18/0x20
       [<ffffffff81142527>] __writepage+0x17/0x40
       [<ffffffff811438ba>] write_cache_pages+0x34a/0x4a0
       [<ffffffff81142510>] ? set_page_dirty+0x70/0x70
       [<ffffffff81143a61>] generic_writepages+0x51/0x80
       [<ffffffff81143ab0>] do_writepages+0x20/0x50
       [<ffffffff811c9ed6>] __writeback_single_inode+0xa6/0x2b0
       [<ffffffff811ca861>] writeback_sb_inodes+0x311/0x4d0
       [<ffffffff811caaa6>] __writeback_inodes_wb+0x86/0xd0
       [<ffffffff811cad43>] wb_writeback+0x1a3/0x330
       [<ffffffff816916cf>] ? _raw_spin_lock_irqsave+0x3f/0x50
       [<ffffffff811b8362>] ? get_nr_inodes+0x52/0x70
       [<ffffffff811cb0ac>] wb_do_writeback+0x1dc/0x260
       [<ffffffff8168dd34>] ? schedule_timeout+0x204/0x240
       [<ffffffff811cb232>] bdi_writeback_thread+0x102/0x2b0
       [<ffffffff811cb130>] ? wb_do_writeback+0x260/0x260
       [<ffffffff81083550>] kthread+0xc0/0xd0
       [<ffffffff81083490>] ? kthread_worker_fn+0x1b0/0x1b0
       [<ffffffff8169a3ec>] ret_from_fork+0x7c/0xb0
       [<ffffffff81083490>] ? kthread_worker_fn+0x1b0/0x1b0
      
       The above trace was triggered by
         "dd if=/dev/zero of=/dev/sr0 bs=2048 count=32768"
      
       It was previously working by accident, since another bug introduced
       by 4dce8ba9 (libata: Use 'bool' return value for ata_id_XXX) caused
       all drives to use maxsect=65535.
      Signed-off-by: default avatarShan Hai <shan.hai@windriver.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      284aeebb
    • Shan Hai's avatar
      libata: Use integer return value for atapi_command_packet_set · 57b41f61
      Shan Hai authored
      commit d8668fcb upstream.
      
      The function returns type of ATAPI drives so it should return integer value.
      The commit 4dce8ba9 (libata: Use 'bool' return value for ata_id_XXX) since
      v2.6.39 changed the type of return value from int to bool, the change would
      cause all of the ATAPI class drives to be treated as TYPE_TAPE and the
      max_sectors of the drives to be set to 65535 because of the commit
      f8d8e579(libata: increase 128 KB / cmd limit for ATAPI tape drives), for the
      function would return true for all ATAPI class drives and the TYPE_TAPE is
      defined as 0x01.
      Signed-off-by: default avatarShan Hai <shan.hai@windriver.com>
      Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      57b41f61
    • Yinghai Lu's avatar
      EISA/PCI: Fix bus res reference · 91777f10
      Yinghai Lu authored
      commit 2cfda637 upstream.
      
      Matthew found that 3.8.3 is having problems with an old (ancient)
      PCI-to-EISA bridge, the Intel 82375. It worked with the 3.2 kernel.
      He identified the 82375, but doesn't assign the struct resource *res
      pointer inside the struct eisa_root_device, and panics.
      
      pci_eisa_init() was using bus->resource[] directly instead of
      pci_bus_resource_n().  The bus->resource[] array is a PCI-internal
      implementation detail, and after commit 45ca9e97 (PCI: add helpers for
      building PCI bus resource lists) and commit 0efd5aab (PCI: add struct
      pci_host_bridge_window with CPU/bus address offset), bus->resource[] is not
      used for PCI root buses any more.
      
      The 82375 is a subtractive-decode PCI device, so handle it the same
      way we handle PCI-PCI bridges in subtractive-decode mode in
      pci_read_bridge_bases().
      
      [bhelgaas: changelog]
      Reported-by: default avatarMatthew Whitehead <mwhitehe@redhat.com>
      Tested-by: default avatarMatthew Whitehead <mwhitehe@redhat.com>
      Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      91777f10
    • Yinghai Lu's avatar
      EISA/PCI: Init EISA early, before PNP · 27bd92ff
      Yinghai Lu authored
      commit c5fb301a upstream.
      
      Matthew reported kernels fail the pci_eisa probe and are later successful
      with the virtual_eisa_root_init force probe without slot0.
      
      The reason for that is: PNP probing is before pci_eisa_init gets called
      as pci_eisa_init is called via pci_driver.
      
      pnp 00:0f has 0xc80 - 0xc84 reserved.
      [    9.700409] pnp 00:0f: [io  0x0c80-0x0c84]
      
      so eisa_probe will fail from pci_eisa_init
      				==>eisa_root_register
      					==>eisa_probe path.
      as force_probe is not set in pci_eisa_root, it will bail early when
      slot0 is not probed and initialized.
      
      Try to use subsys_initcall_sync instead, and will keep following sequence:
      	pci_subsys_init
      	pci_eisa_init_early
      	pnpacpi_init/isapnp_init
      
      After this patch EISA can be initialized properly, and PNP overlapping
      resource will not be reserved.
      [   10.104434] system 00:0f: [io  0x0c80-0x0c84] could not be reserved
      Reported-by: default avatarMatthew Whitehead <mwhitehe@redhat.com>
      Tested-by: default avatarMatthew Whitehead <mwhitehe@redhat.com>
      Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      27bd92ff
    • David Henningsson's avatar
      ALSA: hda - fix typo in proc output · 54144193
      David Henningsson authored
      commit aeb3a972 upstream.
      
      Rename "Digitial In" to "Digital In". This function is only used for
      proc output, so should not cause any problems to change.
      Signed-off-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      54144193
    • Rainer Koenig's avatar
      ALSA: hda - Enabling Realtek ALC 671 codec · 3379d523
      Rainer Koenig authored
      commit 1d87caa6 upstream.
      
      * Added the device ID to the modalias list and assinged ALC662 patches
      for it
      * Added 4 port support for the device ID 0671 in alc662_parse_auto_config
      Signed-off-by: default avatarRainer Koenig <Rainer.Koenig@ts.fujitsu.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3379d523
    • Mengdong Lin's avatar
      ALSA: hda - bug fix on return value when getting HDMI ELD info · 27667449
      Mengdong Lin authored
      commit 2ef5692e upstream.
      
      In function snd_hdmi_get_eld(), the variable 'ret' should be initialized to 0.
      Otherwise it will be returned uninitialized as non-zero after ELD info is got
      successfully. Thus hdmi_present_sense() will always assume ELD info is invalid
      by mistake, and /proc file system cannot show the proper ELD info.
      Signed-off-by: default avatarMengdong Lin <mengdong.lin@intel.com>
      Acked-by: default avatarDavid Henningsson <david.henningsson@canonical.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      27667449
    • Jan Kara's avatar
      reiserfs: Fix warning and inode leak when deleting inode with xattrs · b57644a5
      Jan Kara authored
      commit 35e5cbc0 upstream.
      
      After commit 21d8a15a (lookup_one_len: don't accept . and ..) reiserfs
      started failing to delete xattrs from inode. This was due to a buggy
      test for '.' and '..' in fill_with_dentries() which resulted in passing
      '.' and '..' entries to lookup_one_len() in some cases. That returned
      error and so we failed to iterate over all xattrs of and inode.
      
      Fix the test in fill_with_dentries() along the lines of the one in
      lookup_one_len().
      Reported-by: default avatarPawel Zawora <pzawora@gmail.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      b57644a5
    • Artem Bityutskiy's avatar
      UBIFS: make space fixup work in the remount case · 0d18994c
      Artem Bityutskiy authored
      commit 67e753ca upstream.
      
      The UBIFS space fixup is a useful feature which allows to fixup the "broken"
      flash space at the time of the first mount. The "broken" space is usually the
      result of using a "dumb" industrial flasher which is not able to skip empty
      NAND pages and just writes all 0xFFs to the empty space, which has grave
      side-effects for UBIFS when UBIFS trise to write useful data to those empty
      pages.
      
      The fix-up feature works roughly like this:
      1. mkfs.ubifs sets the fixup flag in UBIFS superblock when creating the image
         (see -F option)
      2. when the file-system is mounted for the first time, UBIFS notices the fixup
         flag and re-writes the entire media atomically, which may take really a lot
         of time.
      3. UBIFS clears the fixup flag in the superblock.
      
      This works fine when the file system is mounted R/W for the very first time.
      But it did not really work in the case when we first mount the file-system R/O,
      and then re-mount R/W. The reason was that we started the fixup procedure too
      late, which we cannot really do because we have to fixup the space before it
      starts being used.
      Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Reported-by: default avatarMark Jackson <mpfj-list@mimc.co.uk>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0d18994c
    • Anatolij Gustschin's avatar
      spi/mpc512x-psc: optionally keep PSC SS asserted across xfer segmensts · a41c384e
      Anatolij Gustschin authored
      commit 1ad849ae upstream.
      
      Some SPI slave devices require asserted chip select signal across
      multiple transfer segments of an SPI message. Currently the driver
      always de-asserts the internal SS signal for every single transfer
      segment of the message and ignores the 'cs_change' flag of the
      transfer description. Disable the internal chip select (SS) only
      if this is needed and indicated by the 'cs_change' flag.
      
      Without this change, each partial transfer of a surrounding
      multi-part SPI transaction might erroneously change the SS
      signal, which might prevent slaves from answering the request
      that was sent in a previous transfer segment because the
      transaction could be considered aborted (SS was de-asserted
      before reading the response).
      Reported-by: default avatarGerhard Sittig <gerhard.sittig@ifm.com>
      Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      a41c384e
    • Girish K S's avatar
      spi/s3c64xx: modified error interrupt handling and init · c8c76a4e
      Girish K S authored
      commit 375981f2 upstream.
      
      The status of the interrupt is available in the status register,
      so reading the clear pending register and writing back the same
      value will not actually clear the pending interrupts. This patch
      modifies the interrupt handler to read the status register and
      clear the corresponding pending bit in the clear pending register.
      
      Modified the hwInit function to clear all the pending interrupts.
      Signed-off-by: default avatarGirish K S <ks.giri@samsung.com>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c8c76a4e
    • Lars-Peter Clausen's avatar
      regmap: cache Fix regcache-rbtree sync · 6ec0e8e1
      Lars-Peter Clausen authored
      commit 8abac3ba upstream.
      
      The last register block, which falls into the specified range, is not handled
      correctly. The formula which calculates the number of register which should be
      synced is inverse (and off by one). E.g. if all registers in that block should
      be synced only one is synced, and if only one should be synced all (but one) are
      synced. To calculate the number of registers that need to be synced we need to
      subtract the number of the first register in the block from the max register
      number and add one. This patch updates the code accordingly.
      
      The issue was introduced in commit ac8d91c8 ("regmap: Supply ranges to the sync
      operations").
      Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6ec0e8e1
    • Lars-Peter Clausen's avatar
      ASoC: dma-sh7760: Fix compile error · 93c86c49
      Lars-Peter Clausen authored
      commit 417a1178 upstream.
      
      The dma-sh7760 currently fails with the following compile error:
      	sound/soc/sh/dma-sh7760.c:346:2: error: unknown field 'pcm_ops' specified in initializer
      	sound/soc/sh/dma-sh7760.c:346:2: warning: initialization from incompatible pointer type
      	sound/soc/sh/dma-sh7760.c:347:2: error: unknown field 'pcm_new' specified in initializer
      	sound/soc/sh/dma-sh7760.c:347:2: warning: initialization makes integer from pointer without a cast
      	sound/soc/sh/dma-sh7760.c:348:2: error: unknown field 'pcm_free' specified in initializer
      	sound/soc/sh/dma-sh7760.c:348:2: warning: initialization from incompatible pointer type
      	sound/soc/sh/dma-sh7760.c: In function 'sh7760_soc_platform_probe':
      	sound/soc/sh/dma-sh7760.c:353:2: warning: passing argument 2 of 'snd_soc_register_platform' from incompatible pointer type
      	include/sound/soc.h:368:5: note: expected 'struct snd_soc_platform_driver *' but argument is of type 'struct snd_soc_platform *'
      
      This is due the misnaming of the snd_soc_platform_driver type name and 'ops'
      field. The issue was introduced in commit f0fba2ad("ASoC: multi-component - ASoC
      Multi-Component Support").
      Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      93c86c49
  2. 05 Apr, 2013 27 commits