04 Nov, 2015

2 commits


31 Oct, 2015

5 commits


27 Oct, 2015

2 commits


16 Oct, 2015

1 commit

  • kbuild test robot reports the warnings:
    drivers/ata/ahci_qoriq.c: In function 'ahci_qoriq_hardreset':
    >> include/asm-generic/io.h:163:2: warning: 'px_is' may be used
    >> uninitialized in this function [-Wuninitialized]
    drivers/ata/ahci_qoriq.c:70:14: note: 'px_is' was declared here
    >> include/asm-generic/io.h:163:2: warning: 'px_cmd' may be used
    >> uninitialized in this function [-Wuninitialized]
    drivers/ata/ahci_qoriq.c:70:6: note: 'px_cmd' was declared here

    This patch fixed it by introducing a local variable.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Tang Yuantian
    Signed-off-by: Tejun Heo

    Arnd Bergmann
     

15 Oct, 2015

1 commit


13 Oct, 2015

1 commit

  • When calling ->done before releasing resources we could run into a
    race where the SCSI midlayer sends another command and races with
    the resources beeing manipulated. For libata this can't currently
    happen as synchronization happens at a higher level, but I'd still
    like to fix it to future proof libata and to avoid copy & paste
    into SCSI drivers where this pattern has led to reproducible crashes.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Tejun Heo

    Christoph Hellwig
     

05 Oct, 2015

1 commit


01 Oct, 2015

1 commit

  • If the AHCI ports' HPCP or ESP bits are set, the port
    should be considered external (e.g. eSATA) and is marked
    as removable. Userspace tools like udisks then treat it
    like an usb drive.

    With this patch applied, when I plug a drive into the esata port,
    KDE pops up a window asking what to do with the drives(s), just
    like it does for any random USB stick.

    Removability is indicated to the upper layers by way of the
    SCSI RMB bit, as I haven't found another way to signal
    userspace to treat a sata disk like any usb stick.

    Signed-off-by: Manuel Lauss
    Signed-off-by: Tejun Heo

    Manuel Lauss
     

25 Sep, 2015

1 commit


17 Sep, 2015

1 commit

  • This platform driver has a OF device ID table but the OF module
    alias information is not created so module autoloading won't work.

    This patch adds the missing MODULE_DEVICE_TABLE() for OF to export
    that information so modules have the correct aliases built-in and
    autoloading works correctly.

    Link: https://lkml.org/lkml/2015/7/30/519
    Signed-off-by: Luis de Bethencourt
    Signed-off-by: Tejun Heo

    Luis de Bethencourt
     

11 Sep, 2015

1 commit

  • The PXA architecture was offered a slave dmaengine support. As a
    consequence the direct DMA registers are progressively replaced by
    dmaengine support.

    This makes the pata_pxa change, which brings this driver to almost a
    generic ATA 40-wires driver relying on dmaengine for transfers.

    Signed-off-by: Robert Jarzmik
    Signed-off-by: Tejun Heo

    Robert Jarzmik
     

09 Sep, 2015

2 commits

  • Currently Freescale QorIQ series SATA is supported by ahci_platform
    driver. Some SoC specific settings have been put in uboot. So whether
    SATA works or not heavily depends on uboot.
    This patch will add a new driver to support QorIQ sata which removes
    the dependency on any other boot loader.
    Freescale QorIQ series sata, like ls1021a ls2085a ls1043a, is
    compatible with serial ATA 3.0 and AHCI 1.3 specification.

    Signed-off-by: Yuantian Tang
    Reviewed-by: Hans de Goede
    Signed-off-by: Tejun Heo

    Tang Yuantian
     
  • This reverts commit 5163fb62541e
    ("ahci: added support for Freescale AHCI sata")

    The reverted patch added Freescale QorIQ AHCI sata support to
    ahci_platform driver though, but it left SoC specific settings to uboot.
    It leads to QorIQ sata heavily depending on uboot. In order to removing
    the dependency we first revert the old patch and then will add a new driver
    for QorIQ SATA.
    Since there are no LS* platforms that have been upstreamed, So
    the revert would not break anything exists.

    Signed-off-by: Tang Yuantian
    Reviewed-by: Hans de Goede
    Signed-off-by: Tejun Heo

    Tang Yuantian
     

04 Sep, 2015

1 commit

  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for 4.3 for MIPS. Here's the summary:

    Three fixes that didn't make 4.2-stable:

    - a -Os build might compile the kernel using the MIPS16 instruction
    set but the R2 optimized inline functions in are
    implemented using 32-bit wide instructions which is invalid.

    - a build error in pgtable-bits.h for a particular kernel
    configuration.

    - accessing registers of the CM GCR might have been compiled to use
    64 bit accesses but these registers are onl 32 bit wide.

    And also a few new bits:

    - move the ATH79 GPIO driver to drivers/gpio

    - the definition of IRQCHIP_DECLARE has moved to linux/irqchip.h,
    change ATH79 accordingly.

    - fix definition of pgprot_writecombine

    - add an implementation of dma_map_ops.mmap

    - fix alignment of quiet build output for vmlinuz link

    - BCM47xx: Use kmemdup rather than duplicating its implementation

    - Netlogic: Fix 0x0x prefixes of constants.

    - merge Bjorn Helgaas' series to remove most of the weak keywords
    from function declarations.

    - CP0 and CP1 registers are best considered treated as unsigned
    values to avoid large values from becoming negative values.

    - improve support for the MIPS GIC timer.

    - enable common clock framework for Malta and SEAD3.

    - a number of improvments and fixes to dump_tlb().

    - document the MIPS TLB dump functionality in Magic SysRq.

    - Cavium Octeon CN68XX improvments.

    - NetLogic improvments.

    - irq: Use access helper irq_data_get_affinity_mask.

    - handle MSA unaligned accesses.

    - a number of R6-related math-emu fixes.

    - support for I6400.

    - improvments to MSA support.

    - add uprobes support.

    - move from deprecated __initcall to arch_initcall.

    - remove finish_arch_switch().

    - IRQ cleanups by Thomas Gleixner.

    - migrate to new 'set-state' interface.

    - random small cleanups"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (148 commits)
    MIPS: UAPI: Fix unrecognized opcode WSBH/DSBH/DSHD when using MIPS16.
    MIPS: Fix alignment of quiet build output for vmlinuz link
    MIPS: math-emu: Remove unused handle_dsemul function declaration
    MIPS: math-emu: Add support for the MIPS R6 MAX{, A} FPU instruction
    MIPS: math-emu: Add support for the MIPS R6 MIN{, A} FPU instruction
    MIPS: math-emu: Add support for the MIPS R6 CLASS FPU instruction
    MIPS: math-emu: Add support for the MIPS R6 RINT FPU instruction
    MIPS: math-emu: Add support for the MIPS R6 MSUBF FPU instruction
    MIPS: math-emu: Add support for the MIPS R6 MADDF FPU instruction
    MIPS: math-emu: Add support for the MIPS R6 SELNEZ FPU instruction
    MIPS: math-emu: Add support for the MIPS R6 SELEQZ FPU instruction
    MIPS: math-emu: Add support for the CMP.condn.fmt R6 instruction
    MIPS: inst.h: Add new MIPS R6 FPU opcodes
    MIPS: Octeon: Fix management port MII address on Kontron S1901
    MIPS: BCM47xx: Use kmemdup rather than duplicating its implementation
    STAGING: Octeon: Use common helpers for determining interface and port
    MIPS: Octeon: Support interfaces 4 and 5
    MIPS: Octeon: Set up 1:1 mapping between CN68XX PKO queues and ports
    MIPS: Octeon: Initialize CN68XX PKO
    STAGING: Octeon: Support CN68XX style WQE
    ...

    Linus Torvalds
     

03 Sep, 2015

1 commit

  • Currently CONFIG_ARCH_HAVE_CUSTOM_GPIO_H is defined for all MIPS
    machines, and each machine type provides its own gpio.h. However
    only a handful really implement the GPIO API, most just forward
    everythings to gpiolib.

    The Alchemy machine is notable as it provides a system to allow
    implementing the GPIO API at the board level. But it is not used by
    any board currently supported, so it can also be removed.

    For most machine types we can just remove the custom gpio.h, as well
    as the custom wrappers if some exists. Some of the code found in
    the wrappers must be moved to the respective GPIO driver.

    A few more fixes are need in some drivers as they rely on linux/gpio.h
    to provides some machine specific definitions, or used asm/gpio.h
    instead of linux/gpio.h for the gpio API.

    Signed-off-by: Alban Bedel
    Reviewed-by: Linus Walleij
    Cc: linux-mips@linux-mips.org
    Cc: Hauke Mehrtens
    Cc: Rafał Miłecki
    Cc: Bartlomiej Zolnierkiewicz
    Cc: Tejun Heo
    Cc: Alexandre Courbot
    Cc: Dmitry Torokhov
    Cc: Florian Fainelli
    Cc: Manuel Lauss
    Cc: Joe Perches
    Cc: Daniel Walter
    Cc: Sergey Ryazanov
    Cc: Huacai Chen
    Cc: James Hartley
    Cc: Andrew Bresticker
    Cc: Paul Burton
    Cc: Jiri Kosina
    Cc: Bjorn Helgaas
    Cc: Wolfram Sang
    Cc: Randy Dunlap
    Cc: Varka Bhadram
    Cc: Masanari Iida
    Cc: Tomi Valkeinen
    Cc: Michael Buesch
    Cc: abdoulaye berthe
    Cc: linux-kernel@vger.kernel.org
    Cc: linux-ide@vger.kernel.org
    Cc: linux-gpio@vger.kernel.org
    Cc: linux-input@vger.kernel.org
    Cc: netdev@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/10828/
    Signed-off-by: Ralf Baechle

    Alban Bedel
     

02 Sep, 2015

1 commit


01 Sep, 2015

1 commit

  • Pull PCI updates from Bjorn Helgaas:
    "PCI changes for the v4.3 merge window:

    Enumeration:
    - Allocate ATS struct during enumeration (Bjorn Helgaas)
    - Embed ATS info directly into struct pci_dev (Bjorn Helgaas)
    - Reduce size of ATS structure elements (Bjorn Helgaas)
    - Stop caching ATS Invalidate Queue Depth (Bjorn Helgaas)
    - iommu/vt-d: Cache PCI ATS state and Invalidate Queue Depth (Bjorn Helgaas)
    - Move MPS configuration check to pci_configure_device() (Bjorn Helgaas)
    - Set MPS to match upstream bridge (Keith Busch)
    - ARM/PCI: Set MPS before pci_bus_add_devices() (Murali Karicheri)
    - Add pci_scan_root_bus_msi() (Lorenzo Pieralisi)
    - ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi() (Lorenzo Pieralisi)

    Resource management:
    - Call pci_read_bridge_bases() from core instead of arch code (Lorenzo Pieralisi)

    PCI device hotplug:
    - pciehp: Remove unused interrupt events (Bjorn Helgaas)
    - pciehp: Remove ignored MRL sensor interrupt events (Bjorn Helgaas)
    - pciehp: Handle invalid data when reading from non-existent devices (Jarod Wilson)
    - pciehp: Simplify pcie_poll_cmd() (Yijing Wang)
    - Use "slot" and "pci_slot" for struct hotplug_slot and struct pci_slot (Yijing Wang)
    - Protect pci_bus->slots with pci_slot_mutex, not pci_bus_sem (Yijing Wang)
    - Hold pci_slot_mutex while searching bus->slots list (Yijing Wang)

    Power management:
    - Disable async suspend/resume for JMicron multi-function SATA/AHCI (Zhang Rui)

    Virtualization:
    - Add ACS quirks for Intel I219-LM/V (Alex Williamson)
    - Restore ACS configuration as part of pci_restore_state() (Alexander Duyck)

    MSI:
    - Add pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu)
    - x86: Implement pcibios_alloc_irq() and pcibios_free_irq() (Jiang Liu)
    - Add helpers to manage pci_dev->irq and pci_dev->irq_managed (Jiang Liu)
    - Free legacy IRQ when enabling MSI/MSI-X (Jiang Liu)
    - ARM/PCI: Remove msi_controller from struct pci_sys_data (Lorenzo Pieralisi)
    - Remove unused pcibios_msi_controller() hook (Lorenzo Pieralisi)

    Generic host bridge driver:
    - Remove dependency on ARM-specific struct hw_pci (Jayachandran C)
    - Build setup-irq.o for arm64 (Jayachandran C)
    - Add arm64 support (Jayachandran C)

    APM X-Gene host bridge driver:
    - Add APM X-Gene PCIe 64-bit prefetchable window (Duc Dang)
    - Add support for a 64-bit prefetchable memory window (Duc Dang)
    - Drop owner assignment from platform_driver (Krzysztof Kozlowski)

    Broadcom iProc host bridge driver:
    - Allow BCMA bus driver to be built as module (Hauke Mehrtens)
    - Delete unnecessary checks before phy calls (Markus Elfring)
    - Add arm64 support (Ray Jui)

    Synopsys DesignWare host bridge driver:
    - Don't complain missing *config* reg space if va_cfg0 is set (Murali Karicheri)

    TI DRA7xx host bridge driver:
    - Disable pm_runtime on get_sync failure (Kishon Vijay Abraham I)
    - Add PM support (Kishon Vijay Abraham I)
    - Clear MSE bit during suspend so clocks will idle (Kishon Vijay Abraham I)
    - Add support to make GPIO drive PERST# line (Kishon Vijay Abraham I)

    Xilinx AXI host bridge driver:
    - Check for MSI interrupt flag before handling as INTx (Russell Joyce)

    Miscellaneous:
    - Fix Intersil/Techwell TW686[4589] AV capture class code (Krzysztof Hałasa)
    - Use PCI_CLASS_SERIAL_USB instead of bare number (Bjorn Helgaas)
    - Fix generic NCR 53c810 class code quirk (Bjorn Helgaas)
    - Fix TI816X class code quirk (Bjorn Helgaas)
    - Remove unused "pci_probe" flags (Bjorn Helgaas)
    - Host bridge driver code simplifications (Fabio Estevam)
    - Add dev_flags bit to access VPD through function 0 (Mark Rustad)
    - Add VPD function 0 quirk for Intel Ethernet devices (Mark Rustad)
    - Kill off set_irq_flags() usage (Rob Herring)
    - Remove Intel Cherrytrail D3 delays (Srinidhi Kasagar)
    - Clean up pci_find_capability() (Wei Yang)"

    * tag 'pci-v4.3-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (72 commits)
    PCI: Disable async suspend/resume for JMicron multi-function SATA/AHCI
    PCI: Set MPS to match upstream bridge
    PCI: Move MPS configuration check to pci_configure_device()
    PCI: Drop references acquired by of_parse_phandle()
    PCI/MSI: Remove unused pcibios_msi_controller() hook
    ARM/PCI: Remove msi_controller from struct pci_sys_data
    ARM/PCI, designware, xilinx: Use pci_scan_root_bus_msi()
    PCI: Add pci_scan_root_bus_msi()
    ARM/PCI: Replace panic with WARN messages on failures
    PCI: generic: Add arm64 support
    PCI: Build setup-irq.o for arm64
    PCI: generic: Remove dependency on ARM-specific struct hw_pci
    PCI: imx6: Simplify a trivial if-return sequence
    PCI: spear: Use BUG_ON() instead of condition followed by BUG()
    PCI: dra7xx: Remove unneeded use of IS_ERR_VALUE()
    PCI: Remove pci_ats_enabled()
    PCI: Stop caching ATS Invalidate Queue Depth
    PCI: Move ATS declarations to linux/pci.h so they're all together
    PCI: Clean up ATS error handling
    PCI: Use pci_physfn() rather than looking up physfn by hand
    ...

    Linus Torvalds
     

29 Aug, 2015

1 commit


26 Aug, 2015

1 commit

  • The Crucial M500 is known to have issues with queued TRIM commands, the
    factory recertified SSDs use a different model number naming convention
    which causes them to get ignored by the blacklist.

    The new naming convention boils down to: s/Crucial_/FC/

    Signed-off-by: Guillermo A. Amaral
    Signed-off-by: Tejun Heo
    Cc: stable@vger.kernel.org

    Guillermo A. Amaral
     

25 Aug, 2015

1 commit

  • On multi-function JMicron SATA/PATA/AHCI devices, the PATA controller at
    function 1 doesn't work if it is powered on before the SATA controller at
    function 0. The result is that PATA doesn't work after resume, and we
    print messages like this:

    pata_jmicron 0000:02:00.1: Refused to change power state, currently in D3
    irq 17: nobody cared (try booting with the "irqpoll" option)

    Async resume was introduced in v3.15 by 76569faa62c4 ("PM / sleep:
    Asynchronous threads for resume_noirq"). Prior to that, we powered on
    the functions in order, so this problem shouldn't happen.

    e6b7e41cdd8c ("ata: Disabling the async PM for JMicron chip 363/361")
    solved the problem for JMicron 361 and 363 devices. With async suspend
    disabled, we always power on function 0 before function 1.

    Barto then reported the same problem with a JMicron 368 (see comment #57 in
    the bugzilla).

    Rather than extending the blacklist piecemeal, disable async suspend for
    all JMicron multi-function SATA/PATA/AHCI devices.

    This quirk could stay in the ahci and pata_jmicron drivers, but it's likely
    the problem will occur even if pata_jmicron isn't loaded until after the
    suspend/resume. Making it a PCI quirk ensures that we'll preserve the
    power-on order even if the drivers aren't loaded.

    [bhelgaas: changelog, limit to multi-function, limit to IDE/ATA]
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=81551
    Reported-and-tested-by: Barto
    Signed-off-by: Zhang Rui
    Signed-off-by: Bjorn Helgaas
    CC: stable@vger.kernel.org # v3.15+

    Zhang Rui
     

23 Aug, 2015

1 commit

  • This patch introduces the use of managed resource function
    devm_clk_get instead of clk_get and removes corresponding call
    to clk_put in the remove function.

    To be compatible with the change various gotos are replaced with
    direct returns, and unneeded label is dropped.

    Signed-off-by: Vaishali Thakkar
    Signed-off-by: Tejun Heo

    Vaishali Thakkar
     

18 Aug, 2015

1 commit

  • Pull libata fixes from Tejun Heo:
    "Three minor device-specific fixes and revert of NCQ autosense added
    during this -rc1.

    It turned out that NCQ autosense as currently implemented interferes
    with the usual error handling behavior. It will be revisited in the
    near future"

    * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    ata: ahci_brcmstb: Fix misuse of IS_ENABLED
    sata_sx4: Check return code from pdc20621_i2c_read()
    Revert "libata: Implement NCQ autosense"
    Revert "libata: Implement support for sense data reporting"
    Revert "libata-eh: Set 'information' field for autosense"
    ata: ahci_brcmstb: Fix warnings with CONFIG_PM_SLEEP=n

    Linus Torvalds
     

10 Aug, 2015

1 commit


07 Aug, 2015

2 commits


04 Aug, 2015

2 commits

  • This reverts commit 42b966fbf35da9c87f08d98f9b8978edf9e717cf.

    As implemented, ACS-4 sense reporting for ATA devices bypasses error
    diagnosis and handling in libata degrading EH behavior significantly.
    Revert the related changes for now.

    Signed-off-by: Tejun Heo
    Cc: Hannes Reinecke
    Cc: stable@vger.kernel.org #v4.1+

    Tejun Heo
     
  • This reverts commit fe7173c206de63fc28475ee6ae42ff95c05692de.

    As implemented, ACS-4 sense reporting for ATA devices bypasses error
    diagnosis and handling in libata degrading EH behavior significantly.
    Revert the related changes for now.

    ATA_ID_COMMAND_SET_3/4 constants are not reverted as they're used by
    later changes.

    Signed-off-by: Tejun Heo
    Cc: Hannes Reinecke
    Cc: stable@vger.kernel.org #v4.1+

    Tejun Heo
     

03 Aug, 2015

1 commit

  • This reverts commit a1524f226a02aa6edebd90ae0752e97cfd78b159.

    As implemented, ACS-4 sense reporting for ATA devices bypasses error
    diagnosis and handling in libata degrading EH behavior significantly.
    Revert the related changes for now.

    Signed-off-by: Tejun Heo
    Cc: Hannes Reinecke
    Cc: stable@vger.kernel.org #v4.1+

    Tejun Heo
     

29 Jul, 2015

1 commit

  • When CONFIG_PM_SLEEP is disabled, brcm_ahci_{suspend,resume} are not
    used, which causes such a build warning to occur:

    CC drivers/ata/ahci_brcmstb.o
    drivers/ata/ahci_brcmstb.c:212:12: warning: 'brcm_ahci_suspend' defined
    but not used [-Wunused-function]
    static int brcm_ahci_suspend(struct device *dev)
    ^
    drivers/ata/ahci_brcmstb.c:224:12: warning: 'brcm_ahci_resume' defined
    but not used [-Wunused-function]
    static int brcm_ahci_resume(struct device *dev)
    ^
    LD drivers/ata/built-in.o

    Fixes: 766a2d979632 ("ata: add Broadcom AHCI SATA3 driver for STB chips")
    Signed-off-by: Florian Fainelli
    Acked-by: Brian Norris
    Signed-off-by: Tejun Heo

    Florian Fainelli
     

25 Jul, 2015

1 commit

  • Pull libata fixes from Tejun Heo:
    "A couple important fixes.

    - A block layer change which removed restriction on max transfer size
    led to silent data corruption on some devices. A new quirk is
    added to restore the old size limit for the reported device. If it
    gets reported on more devices, we might have to consider restoring
    the restriction for ATA devices by default.

    - There finally is a SSD which is confirmed to cause data corruption
    on TRIM regardless of which flavor is used. A new quirk is added
    and the device is blacklisted

    - Other device-specific workarounds"

    * 'for-4.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    libata: Do not blacklist M510DC
    libata: increase the timeout when setting transfer mode
    libata: add ATA_HORKAGE_MAX_SEC_1024 to revert back to previous max_sectors limit
    libata: force disable trim for SuperSSpeed S238
    libata: add ATA_HORKAGE_NOTRIM
    libata: add ATA_HORKAGE_BROKEN_FPDMA_AA quirk for HP 250GB SATA disk VB0250EAVER
    ata: pmp: add quirk for Marvell 4140 SATA PMP

    Linus Torvalds
     

18 Jul, 2015

1 commit


17 Jul, 2015

1 commit

  • A new Micron drive was just announced, once again recycling the first
    part of the model string. Add an underscore to the M510/M550 pattern to
    avoid picking up the new DC drive.

    Signed-off-by: Martin K. Petersen
    Cc:
    Signed-off-by: Tejun Heo

    Martin K. Petersen
     

15 Jul, 2015

2 commits

  • I have a ST4000DM000 disk. If Linux is booted while the disk is spun down,
    the command that sets transfer mode causes the disk to spin up. The
    spin-up takes longer than the default 5s timeout, so the command fails and
    timeout is reported.

    Fix this by increasing the timeout to 15s, which is enough for the disk to
    spin up.

    Signed-off-by: Mikulas Patocka
    Cc: stable@vger.kernel.org
    Signed-off-by: Tejun Heo

    Mikulas Patocka
     
  • Since no longer limiting max_sectors to BLK_DEF_MAX_SECTORS (commit 34b48db66e08),
    data corruption may occur on ST380013AS drive configured on 82801JI (ICH10 Family)
    SATA controller. This patch will allow the driver to limit max_sectors as before

    # cat /sys/block/sdb/queue/max_sectors_kb
    512

    I was able to double the max_sectors_kb value up to 16384 on linux-4.2.0-rc2
    before seeing corruption, but seems safer to use previous limit. Without this
    patch max_sectors_kb will be 32767.

    tj: Minor comment update.

    Reported-by: Jeff Moyer
    Signed-off-by: David Milburn
    Signed-off-by: Tejun Heo
    Cc: stable@vger.kernel.org # v3.19 and later
    Fixes: 34b48db66e08 ("block: remove artifical max_hw_sectors cap")

    David Milburn