Skip to content
  1. May 08, 2015
  2. May 06, 2015
    • Chuanxiao Dong's avatar
      mmc: card: Don't access RPMB partitions for normal read/write · 4e93b9a6
      Chuanxiao Dong authored
      During kernel boot, it will try to read some logical sectors
      of each block device node for the possible partition table.
      
      But since RPMB partition is special and can not be accessed
      by normal eMMC read / write CMDs, it will cause below error
      messages during kernel boot:
      ...
       mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
       mmcblk0rpmb: error -110 transferring data, sector 0, nr 32, cmd response 0x900, card status 0xb00
       mmcblk0rpmb: retrying using single block read
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       mmcblk0rpmb: timed out sending r/w cmd command, card status 0x400900
       end_request: I/O error, dev mmcblk0rpmb, sector 0
       Buffer I/O error on device mmcblk0rpmb, logical block 0
       end_request: I/O error, dev mmcblk0rpmb, sector 8
       Buffer I/O error on device mmcblk0rpmb, logical block 1
       end_request: I/O error, dev mmcblk0rpmb, sector 16
       Buffer I/O error on device mmcblk0rpmb, logical block 2
       end_request: I/O error, dev mmcblk0rpmb, sector 24
       Buffer I/O error on device mmcblk0rpmb, logical block 3
      ...
      
      This patch will discard the access request in eMMC queue if
      it is RPMB partition access request. By this way, it avoids
      trigger above error messages.
      
      Fixes: 090d25fe
      
       ("mmc: core: Expose access to RPMB partition")
      Signed-off-by: default avatarYunpeng Gao <yunpeng.gao@intel.com>
      Signed-off-by: default avatarChuanxiao Dong <chuanxiao.dong@intel.com>
      Tested-by: default avatarMichael Shigorin <mike@altlinux.org>
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      4e93b9a6
    • Takeshi Kihara's avatar
      mmc: sh_mmcif: Fix timeout value for command request · bad4371d
      Takeshi Kihara authored
      f9fd54f2 ("mmc: sh_mmcif: Use msecs_to_jiffies() for host->timeout")
      changed the timeout value from 1000 jiffies to 1s. In the case where
      HZ is 1000 the values are the same. However, for smaller HZ values the
      timeout is now smaller, 1s instead of 10s in the case of HZ=100.
      
      Since the timeout occurs in spite of a normal data transfer a timeout of
      10s seems more appropriate. This restores the previous timeout in the
      case where HZ=100 and results in an increase over the previous timeout
      for larger values of HZ.
      
      Fixes: f9fd54f2
      
       ("mmc: sh_mmcif: Use msecs_to_jiffies() for host->timeout")
      Signed-off-by: default avatarTakeshi Kihara <takeshi.kihara.df@renesas.com>
      [horms: rewrote changelog to refer to HZ]
      Signed-off-by: default avatarSimon Horman <horms+renesas@verge.net.au>
      Signed-off-by: default avatarYoshihiro Kaneko <ykaneko0929@gmail.com>
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      bad4371d
  3. May 04, 2015
  4. May 03, 2015
    • Jan Kara's avatar
      ext4: fix growing of tiny filesystems · 2c869b26
      Jan Kara authored
      
      
      The estimate of necessary transaction credits in ext4_flex_group_add()
      is too pessimistic. It reserves credit for sb, resize inode, and resize
      inode dindirect block for each group added in a flex group although they
      are always the same block and thus it is enough to account them only
      once. Also the number of modified GDT block is overestimated since we
      fit EXT4_DESC_PER_BLOCK(sb) descriptors in one block.
      
      Make the estimation more precise. That reduces number of requested
      credits enough that we can grow 20 MB filesystem (which has 1 MB
      journal, 79 reserved GDT blocks, and flex group size 16 by default).
      
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Reviewed-by: default avatarEric Sandeen <sandeen@redhat.com>
      2c869b26
    • Davide Italiano's avatar
      ext4: move check under lock scope to close a race. · 280227a7
      Davide Italiano authored
      
      
      fallocate() checks that the file is extent-based and returns
      EOPNOTSUPP in case is not. Other tasks can convert from and to
      indirect and extent so it's safe to check only after grabbing
      the inode mutex.
      
      Signed-off-by: default avatarDavide Italiano <dccitaliano@gmail.com>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      280227a7
    • Lukas Czerner's avatar
      ext4: fix data corruption caused by unwritten and delayed extents · d2dc317d
      Lukas Czerner authored
      
      
      Currently it is possible to lose whole file system block worth of data
      when we hit the specific interaction with unwritten and delayed extents
      in status extent tree.
      
      The problem is that when we insert delayed extent into extent status
      tree the only way to get rid of it is when we write out delayed buffer.
      However there is a limitation in the extent status tree implementation
      so that when inserting unwritten extent should there be even a single
      delayed block the whole unwritten extent would be marked as delayed.
      
      At this point, there is no way to get rid of the delayed extents,
      because there are no delayed buffers to write out. So when a we write
      into said unwritten extent we will convert it to written, but it still
      remains delayed.
      
      When we try to write into that block later ext4_da_map_blocks() will set
      the buffer new and delayed and map it to invalid block which causes
      the rest of the block to be zeroed loosing already written data.
      
      For now we can fix this by simply not allowing to set delayed status on
      written extent in the extent status tree. Also add WARN_ON() to make
      sure that we notice if this happens in the future.
      
      This problem can be easily reproduced by running the following xfs_io.
      
      xfs_io -f -c "pwrite -S 0xaa 4096 2048" \
                -c "falloc 0 131072" \
                -c "pwrite -S 0xbb 65536 2048" \
                -c "fsync" /mnt/test/fff
      
      echo 3 > /proc/sys/vm/drop_caches
      xfs_io -c "pwrite -S 0xdd 67584 2048" /mnt/test/fff
      
      This can be theoretically also reproduced by at random by running fsx,
      but it's not very reliable, though on machines with bigger page size
      (like ppc) this can be seen more often (especially xfstest generic/127)
      
      Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
      Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Cc: stable@vger.kernel.org
      d2dc317d
  5. May 02, 2015
  6. May 01, 2015
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 64887b68
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "A few more btrfs fixes.
      
        These range from corners Filipe found in the new free space cache
        writeback to a grab bag of fixes from the list"
      
      * 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: btrfs_release_extent_buffer_page didn't free pages of dummy extent
        Btrfs: fill ->last_trans for delayed inode in btrfs_fill_inode.
        btrfs: unlock i_mutex after attempting to delete subvolume during send
        btrfs: check io_ctl_prepare_pages return in __btrfs_write_out_cache
        btrfs: fix race on ENOMEM in alloc_extent_buffer
        btrfs: handle ENOMEM in btrfs_alloc_tree_block
        Btrfs: fix find_free_dev_extent() malfunction in case device tree has hole
        Btrfs: don't check for delalloc_bytes in cache_save_setup
        Btrfs: fix deadlock when starting writeback of bg caches
        Btrfs: fix race between start dirty bg cache writeout and bg deletion
      64887b68
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 036f351e
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Not too much here, but we've addressed a couple of nasty issues in the
        dma-mapping code as well as adding the halfword and byte variants of
        load_acquire/store_release following on from the CSD locking bug that
        you fixed in the core.
      
         - fix perf devicetree warnings at probe time
      
         - fix memory leak in __dma_free()
      
         - ensure DMA buffers are always zeroed
      
         - show IRQ trigger in /proc/interrupts (for parity with ARM)
      
         - implement byte and halfword access for smp_{load_acquire,store_release}"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: perf: Fix the pmu node name in warning message
        arm64: perf: don't warn about missing interrupt-affinity property for PPIs
        arm64: add missing PAGE_ALIGN() to __dma_free()
        arm64: dma-mapping: always clear allocated buffers
        ARM64: Enable CONFIG_GENERIC_IRQ_SHOW_LEVEL
        arm64: add missing data types in smp_load_acquire/smp_store_release
      036f351e
    • Sam Bobroff's avatar
      powerpc/powernv: Restore non-volatile CRs after nap · 0aab3747
      Sam Bobroff authored
      Patches 7cba160a "powernv/cpuidle: Redesign idle states management"
      and 77b54e9f "powernv/powerpc: Add winkle support for offline cpus"
      use non-volatile condition registers (cr2, cr3 and cr4) early in the system
      reset interrupt handler (system_reset_pSeries()) before it has been determined
      if state loss has occurred. If state loss has not occurred, control returns via
      the power7_wakeup_noloss() path which does not restore those condition
      registers, leaving them corrupted.
      
      Fix this by restoring the condition registers in the power7_wakeup_noloss()
      case.
      
      This is apparent when running a KVM guest on hardware that does not
      support winkle or sleep and the guest makes use of secondary threads. In
      practice this means Power7 machines, though some early unreleased Power8
      machines may also be susceptible.
      
      The secondary CPUs are taken off line before the guest is started and
      they call pnv_smp_cpu_kill_self(). This checks support for sleep
      states (in this case there is no support) and power7_nap() is called.
      
      When the CPU is woken, power7_nap() returns and because the CPU is
      still off line, the main while loop executes again. The sleep states
      support test is executed again, but because the tested values cannot
      have changed, the compiler has optimized the test away and instead we
      rely on the result of the first test, which has been left in cr3
      and/or cr4. With the result overwritten, the wrong branch is taken and
      power7_winkle() is called on a CPU that does not support it, leading
      to it stalling.
      
      Fixes: 7cba160a ("powernv/cpuidle: Redesign idle states management")
      Fixes: 77b54e9f
      
       ("powernv/powerpc: Add winkle support for offline cpus")
      [mpe: Massage change log a bit more]
      Signed-off-by: default avatarSam Bobroff <sam.bobroff@au1.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      0aab3747
    • Gavin Shan's avatar
      powerpc/eeh: Delay probing EEH device during hotplug · d91dafc0
      Gavin Shan authored
      Commit 1c509148b ("powerpc/eeh: Do probe on pci_dn") probes EEH
      devices in early stage, which is reasonable to pSeries platform.
      However, it's wrong for PowerNV platform because the PE# isn't
      determined until the resources (IO and MMIO) are assigned to
      PE in hotplug case. So we have to delay probing EEH devices
      for PowerNV platform until the PE# is assigned.
      
      Fixes: ff57b454
      
       ("powerpc/eeh: Do probe on pci_dn")
      Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      d91dafc0
    • Gavin Shan's avatar
      powerpc/eeh: Fix race condition in pcibios_set_pcie_reset_state() · 1ae79b78
      Gavin Shan authored
      When asserting reset in pcibios_set_pcie_reset_state(), the PE
      is enforced to (hardware) frozen state in order to drop unexpected
      PCI transactions (except PCI config read/write) automatically by
      hardware during reset, which would cause recursive EEH error.
      However, the (software) frozen state EEH_PE_ISOLATED is missed.
      When users get 0xFF from PCI config or MMIO read, EEH_PE_ISOLATED
      is set in PE state retrival backend. Unfortunately, nobody (the
      reset handler or the EEH recovery functinality in host) will clear
      EEH_PE_ISOLATED when the PE has been passed through to guest.
      
      The patch sets and clears EEH_PE_ISOLATED properly during reset
      in function pcibios_set_pcie_reset_state() to fix the issue.
      
      Fixes: 28158cd1
      
       ("Enhance pcibios_set_pcie_reset_state()")
      Reported-by: default avatarCarol L. Soto <clsoto@us.ibm.com>
      Signed-off-by: default avatarGavin Shan <gwshan@linux.vnet.ibm.com>
      Tested-by: default avatarCarol L. Soto <clsoto@us.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      1ae79b78
    • Nathan Fontenot's avatar
      powerpc/pseries: Correct cpu affinity for dlpar added cpus · f32393c9
      Nathan Fontenot authored
      The incorrect ordering of operations during cpu dlpar add results in invalid
      affinity for the cpu being added. The ibm,associativity property in the
      device tree is populated with all zeroes for the added cpu which results in
      invalid affinity mappings and all cpus appear to belong to node 0.
      
      This occurs because rtas configure-connector is called prior to making the
      rtas set-indicator calls. Phyp does not assign affinity information
      for a cpu until the rtas set-indicator calls are made to set the isolation
      and allocation state.
      
      Correct the order of operations to make the rtas set-indicator
      calls (done in dlpar_acquire_drc) before calling rtas configure-connector.
      
      Fixes: 1a8061c4
      
       ("powerpc/pseries: Add kernel based CPU DLPAR handling")
      
      Signed-off-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      f32393c9
    • Michael Ellerman's avatar
      selftests/powerpc: Fix the pmu install rule · 2fa30fe9
      Michael Ellerman authored
      My patch to add install support for the powerpc selftests had a typo,
      leading to the three tests in the pmu directory itself not being
      installed.
      
      Fixes: 6faeeea4
      
       ("selftests: Add install support for the powerpc tests")
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      2fa30fe9
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 4a152c39
      Linus Torvalds authored
      Pull power management and ACPI fixes from Rafael Wysocki:
       "Three regression fixes this time, one for a recent regression in the
        cpuidle core affecting multiple systems, one for an inadvertently
        added duplicate typedef in ACPICA that breaks compilation with GCC 4.5
        and one for an ACPI Smart Battery Subsystem driver regression
        introduced during the 3.18 cycle (stable-candidate).
      
        Specifics:
      
         - Fix for a regression in the cpuidle core introduced by one of the
           recent commits in the clockevents_notify() removal series that put
           a call to a function which had to be executed with disabled
           interrupts into a code path running with enabled interrupts (Rafael
           J Wysocki)
      
         - Fix for a build problem in ACPICA (with GCC 4.5) introduced by one
           of the recent ACPICA tools commits that added a duplicate typedef
           to one of the ACPICA's header files by mistake (Olaf Hering)
      
         - Fix for a regression in the ACPI SBS (Smart Battery Subsystem)
           driver introduced during the 3.18 development cycle causing the
           smart battery manager to be marked as not present when it should be
           marked as present (Chris Bainbridge)"
      
      * tag 'pm+acpi-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpuidle: Run tick_broadcast_exit() with disabled interrupts
        ACPI / SBS: Enable battery manager when present
        ACPICA: remove duplicate u8 typedef
      4a152c39
    • Linus Torvalds's avatar
      Merge tag 'sound-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 5a2e73b2
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "One nice fix is Peter's patch to make the old good SB Audigy PCI to
        work with 32bit DMA instead of 31bit.  This allows the MIDI synth
        running on modern machines again.  Along with it, a few fixes for
        emu10k1 have merged.
      
        In ASoC side, there is one fix in the common code, but it's just
        trivial additions of static inline functions for CONFIG_PM=n.  The
        rest are various device-specific small fixes.
      
        Last but not least, a few HD-audio fixes are included, as usual, too"
      
      * tag 'sound-4.1-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (23 commits)
        ASoC: rt5677: fixed wrong DMIC ref clock
        ALSA: emu10k1: Emu10k2 32 bit DMA mode
        ALSA: emux: Fix mutex deadlock in OSS emulation
        ASoC: Update email-id of Rajeev Kumar
        ASoC: rt5645: Fix mask for setting RT5645_DMIC_2_DP_GPIO12 bit
        ALSA: hda - Fix missing va_end() call in snd_hda_codec_pcm_new()
        ALSA: emux: Fix mutex deadlock at unloading
        ALSA: emu10k1: Fix card shortname string buffer overflow
        ALSA: hda - Add mute-LED mode control to Thinkpad
        ALSA: hda - Fix mute-LED fixed mode
        ALSA: hda - Fix click noise at start on Dell XPS13
        ASoC: rt5645: Add ACPI match ID
        ASoC: rt5677: add register patch for PLL
        ASoC: Intel: fix the makefile for atom code
        ASoC: dapm: Enable autodisable on SOC_DAPM_SINGLE_TLV_AUTODISABLE
        ASoC: add static inline funcs to fix a compiling issue
        ASoC: Intel: sst_byt: remove kfree for memory allocated with devm_kzalloc
        ASoC: samsung: s3c24xx-i2s: Fix return value check in s3c24xx_iis_dev_probe()
        ASoC: tfa9879: Fix return value check in tfa9879_i2c_probe()
        ASoC: fsl_ssi: Fix platform_get_irq() error handling
        ...
      5a2e73b2
    • Markus Pargmann's avatar
      net: fec: Fix RGMII-ID mode · e813bb2b
      Markus Pargmann authored
      
      
      RGMII-ID uses an internal delay within the transmitter or receiver. This
      feature is phy specific. The rest of the communication is normal RGMII.
      
      So the fec driver has to check for all RGMII modes, not only
      'PHY_INTERFACE_MODE_RGMII'.
      
      Signed-off-by: default avatarMarkus Pargmann <mpa@pengutronix.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e813bb2b
    • Ido Shamay's avatar
      net/mlx4_en: Schedule napi when RX buffers allocation fails · 07841f9d
      Ido Shamay authored
      
      
      When system is out of memory, refilling of RX buffers fails while
      the driver continue to pass the received packets to the kernel stack.
      At some point, when all RX buffers deplete, driver may fall into a
      sleep, and not recover when memory for new RX buffers is once again
      availible. This is because hardware does not have valid descriptors,
      so no interrupt will be generated for the driver to return to work
      in napi context. Fix it by schedule the napi poll function from
      stats_task delayed workqueue, as long as the allocations fail.
      
      Signed-off-by: default avatarIdo Shamay <idos@mellanox.com>
      Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      07841f9d
    • Tony Camuso's avatar
      netxen_nic: use spin_[un]lock_bh around tx_clean_lock · c232d8a8
      Tony Camuso authored
      
      
      While testing this driver with DEBUG_LOCKDEP and DEBUG_SPINLOCK
      enabled did not produce any traces, it would be more prudent in the
      case of tx_clean_lock to use spin_[un]lock_bh, since this lock is
      manipulated in both the process and softirq contexts.
      
      This patch was tested for functionality and regressions with netperf
      and DEBUG_LOCKDEP and DEBUG_SPINLOCK enabled.
      
      Signed-off-by: default avatarTony Camuso <tcamuso@redhat.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c232d8a8
    • David Ahern's avatar
      net/mlx4_core: Fix unaligned accesses · 17d5ceb6
      David Ahern authored
      
      
      Addresses the following kernel logs seen during boot:
      
      Kernel unaligned access at TPC[100ee150] mlx4_QUERY_HCA+0x80/0x248 [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      Kernel unaligned access at TPC[100f071c] mlx4_QUERY_ADAPTER+0x100/0x12c [mlx4_core]
      
      Signed-off-by: default avatarDavid Ahern <david.ahern@oracle.com>
      Acked-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      17d5ceb6
    • Benjamin Poirier's avatar
      mlx4_en: Use correct loop cursor in error path. · f94813f3
      Benjamin Poirier authored
      
      
      Signed-off-by: default avatarBenjamin Poirier <bpoirier@suse.de>
      Fixes: 9e311e77
      
       ("net/mlx4_en: Use affinity hint")
      Acked-by: default avatarAmir Vadai <amirv@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f94813f3