Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1233453 > unrolled thread

[PATCH 4.1 000/159] 4.1.9-stable review

Started byGreg Kroah-Hartman <gregkh@linuxfoundation.org>
First post2015-09-26 23:50 +0200
Last post2015-09-29 03:00 +0200
Articles 20 on this page of 52 — 6 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 4.1 000/159] 4.1.9-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 087/159] md/raid10: always set reshape_safe when initializing reshape_position. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 090/159] iommu/io-pgtable-arm: Unmap and free table when overwriting with block Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 042/159] powerpc/mm: Recompute hash value after a failed update Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 040/159] crypto: vmx - Adding enable_kernel_vsx() to access VSX instructions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 044/159] Add radeon suspend/resume quirk for HP Compaq dc5750. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 078/159] parisc: Filter out spurious interrupts in PA-RISC irq handler Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 037/159] powerpc/mm: Fix pte_pagesize_index() crash on 4K w/64K hash Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 062/159] NFS41/flexfiles: update inode after write finishes Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 038/159] powerpc/rtas: Introduce rtas_get_sensor_fast() for IRQ handlers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 021/159] arm64: head.S: initialise mdcr_el2 in el2_setup Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 015/159] Revert "ext4: remove block_device_ejected" Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 066/159] NFSv4.1: Fix a protocol issue with CLOSE stateids Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 031/159] ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop. Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 029/159] ALSA: hda - Enable headphone jack detect on old Fujitsu laptops Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 065/159] NFSv4.1/flexfiles: Fix a protocol error in layoutreturn Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 020/159] arm64: compat: fix vfp save/restore across signal handlers in big-endian Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 064/159] NFS41/flexfiles: zero out DS write wcc Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 039/159] powerpc: Uncomment and make enable_kernel_vsx() routine available Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 067/159] Revert "NFSv4: Remove incorrect check in can_open_delegated()" Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 035/159] powerpc/eeh: Probe after unbalanced kref check Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 030/159] ALSA: hda - Use ALC880_FIXUP_FUJITSU for FSC Amilo M1437 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 089/159] iommu/fsl: Really fix init section(s) content Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 041/159] powerpc/boot: Specify ABI v2 when building an LE boot wrapper Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 012/159] cxl: Remove racy attempt to force EEH invocation in reset Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 063/159] NFSv4: Force a post-op attribute update when holding a delegation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 036/159] powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-26 23:50 +0200
    [PATCH 4.1 011/159] mac80211: enable assoc check for mesh interfaces Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 005/159] rtlwifi: rtl8192cu: Add new device ID Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 013/159] cxl: Fix unbalanced pci_dev_get in cxl_probe Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 008/159] tg3: Fix temperature reporting Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 010/159] MIPS: math-emu: Emulate missing BC1{EQ,NE}Z instructions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 007/159] igb: Fix oops caused by missing queue pairing Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 001/159] NFC: st21nfca: fix use of uninitialized variables in error path Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 018/159] of/fdt: make memblock maximum physical address arch configurable Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 014/159] ext4: dont manipulate recovery flag when freezing no-journal fs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 006/159] rtlwifi: rtl8821ae: Fix an expression that is always false Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 004/159] unshare: Unsharing a thread does not require unsharing a vm Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 017/159] arm64: flush FP/SIMD state correctly after execve() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 003/159] blk-mq: fix buffer overflow when reading sysfs file of pending Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    [PATCH 4.1 002/159] nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 00:00 +0200
    Re: [PATCH 4.1 000/159] 4.1.9-stable review (build error) Guenter Roeck <linux@roeck-us.net> - 2015-09-27 02:40 +0200
      [PATCH] cxl: Don't remove AFUs/vPHBs in cxl_reset Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-27 08:50 +0200
        Re: [PATCH] cxl: Don't remove AFUs/vPHBs in cxl_reset Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 17:40 +0200
        Re: [PATCH] cxl: Don't remove AFUs/vPHBs in cxl_reset Daniel Axtens <dja@axtens.net> - 2015-09-29 07:30 +0200
    Re: [PATCH 4.1 000/159] 4.1.9-stable review Guenter Roeck <linux@roeck-us.net> - 2015-09-27 21:20 +0200
      Re: [PATCH 4.1 000/159] 4.1.9-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-27 21:40 +0200
    Re: [PATCH 4.1 000/159] 4.1.9-stable review Sudip Mukherjee <sudipm.mukherjee@gmail.com> - 2015-09-28 07:10 +0200
      Re: [PATCH 4.1 000/159] 4.1.9-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-28 16:30 +0200
    Re: [PATCH 4.1 000/159] 4.1.9-stable review Shuah Khan <shuahkh@osg.samsung.com> - 2015-09-28 19:40 +0200
      Re: [PATCH 4.1 000/159] 4.1.9-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2015-09-28 23:40 +0200
    Re: [PATCH 4.1 000/159] 4.1.9-stable review "Andre Tomt (LKML)" <lkml@tomt.net> - 2015-09-29 03:00 +0200

Page 1 of 3  [1] 2 3  Next page →


#1233453 — [PATCH 4.1 000/159] 4.1.9-stable review

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 000/159] 4.1.9-stable review
Message-ID<qd4Tf-384-5@gated-at.bofh.it>
This is the start of the stable review cycle for the 4.1.9 release.
There are 159 patches in this series, all will be posted as a response
to this one.  If anyone has any issues with these being applied, please
let me know.

Responses should be made by Mon Sep 28 20:51:39 UTC 2015.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
	kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.1.9-rc1.gz
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Linux 4.1.9-rc1

Andy Whitcroft <apw@canonical.com>
    ipv4: off-by-one in continuation handling in /proc/net/route

Florian Fainelli <f.fainelli@gmail.com>
    net: dsa: Do not override PHY interface if already configured

Eric Dumazet <edumazet@google.com>
    inet: fix races with reqsk timers

Eric Dumazet <edumazet@google.com>
    inet: fix possible request socket leak

Daniel Borkmann <daniel@iogearbox.net>
    netlink: make sure -EBUSY won't escape from netlink_insert

Ivan Vecera <ivecera@redhat.com>
    bna: fix interrupts storm caused by erroneous packets

Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy

Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy

Eric Dumazet <edumazet@google.com>
    udp: fix dst races with multicast early demux

Dan Carpenter <dan.carpenter@oracle.com>
    rds: fix an integer overflow test in rds_info_getsockopt()

Ido Schimmel <idosch@mellanox.com>
    rocker: free netdevice during netdevice removal

Daniel Borkmann <daniel@iogearbox.net>
    net: sched: fix refcount imbalance in actions

Daniel Borkmann <daniel@iogearbox.net>
    act_bpf: fix memory leaks when replacing bpf programs

Alexander Drozdov <al.drozdov@gmail.com>
    packet: tpacket_snd(): fix signed/unsigned comparison

Lars Westerhoff <lars.westerhoff@newtec.eu>
    packet: missing dev_put() in packet_do_bind()

Alexander Duyck <alexander.h.duyck@redhat.com>
    fib_trie: Drop unnecessary calls to leaf_pull_suffix

Jack Morgenstein <jackm@dev.mellanox.co.il>
    net/mlx4_core: Fix wrong index in propagating port change event to VFs

Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    bridge: netlink: fix slave_changelink/br_setport race conditions

Michael S. Tsirkin <mst@redhat.com>
    virtio_net: don't require ANY_LAYOUT with VERSION_1

Florian Westphal <fw@strlen.de>
    netlink: don't hold mutex in rcu callback when releasing mmapd ring

Edward Hyunkoo Jee <edjee@google.com>
    inet: frags: fix defragmented packet's IP header for af_packet

Daniel Borkmann <daniel@iogearbox.net>
    sched: cls_flow: fix panic on filter replace

Daniel Borkmann <daniel@iogearbox.net>
    sched: cls_bpf: fix panic on filter replace

dingtianhong <dingtianhong@huawei.com>
    bonding: correct the MAC address for "follow" fail_over_mac policy

Herbert Xu <herbert@gondor.apana.org.au>
    Revert "sit: Add gro callbacks to sit_offload"

Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    bonding: fix destruction of bond with devices different from arphrd_ether

Eric Dumazet <edumazet@google.com>
    ipv6: lock socket in ip6_datagram_connect()

Tilman Schmidt <tilman@imap.cc>
    isdn/gigaset: reset tty->receive_room when attaching ser_gigaset

WANG Cong <xiyou.wangcong@gmail.com>
    fq_codel: fix a use-after-free

Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
    bridge: mdb: fix double add notification

Herbert Xu <herbert@gondor.apana.org.au>
    net: Fix skb_set_peeked use-after-free bug

Herbert Xu <herbert@gondor.apana.org.au>
    net: Fix skb csum races when peeking

Herbert Xu <herbert@gondor.apana.org.au>
    net: Clone skb before setting peeked flag

Dan Carpenter <dan.carpenter@oracle.com>
    net/xen-netback: off by one in BUG_ON() condition

Julian Anastasov <ja@ssi.bg>
    net: call rcu_read_lock early in process_backlog

Julian Anastasov <ja@ssi.bg>
    net: do not process device backlog during unregistration

Eric Dumazet <edumazet@google.com>
    bridge: fix potential crash in __netdev_pick_tx()

Oleg Nesterov <oleg@redhat.com>
    net: pktgen: fix race between pktgen_thread_worker() and kthread_stop()

Nikolay Aleksandrov <razor@blackwall.org>
    bridge: mdb: zero out the local br_ip variable before use

Stephen Smalley <sds@tycho.nsa.gov>
    net/tipc: initialize security state for new connection socket

Timo Teräs <timo.teras@iki.fi>
    ip_tunnel: fix ipv4 pmtu check to honor inner ip header df

Daniel Borkmann <daniel@iogearbox.net>
    rtnetlink: verify IFLA_VF_INFO attributes before passing them to driver

Nicolas Dichtel <nicolas.dichtel@6wind.com>
    Revert "dev: set iflink to 0 for virtual interfaces"

Eric Dumazet <edumazet@google.com>
    net: graceful exit from netif_alloc_netdev_queues()

Phil Sutter <phil@nwl.cc>
    rhashtable: fix for resize events during table walk

Angga <Hermin.Anggawijaya@alliedtelesis.co.nz>
    ipv6: Make MLD packets to only be processed locally

Jan Kara <jack@suse.com>
    jbd2: avoid infinite loop when destroying aborted journal

Yinghai Lu <yinghai@kernel.org>
    lib/decompressors: use real out buf size for gunzip with kernel

Hin-Tak Leung <htl10@users.sourceforge.net>
    hfs,hfsplus: cache pages correctly between bnode_create and bnode_free

Heiko Stübner <heiko@sntech.de>
    net: stmmac: dwmac-rk: Fix clk rate when provided by soc

Alexey Brodkin <Alexey.Brodkin@synopsys.com>
    stmmac: troubleshoot unexpected bits in des0 & des1

Alexey Brodkin <Alexey.Brodkin@synopsys.com>
    stmmac: fix check for phydev being open

Ariel Nahum <arieln@mellanox.com>
    IB/mlx4: Fix incorrect cq flushing in error state

Noa Osherovich <noaos@mellanox.com>
    IB/mlx4: Use correct SL on AH query under RoCE

Jack Morgenstein <jackm@dev.mellanox.co.il>
    IB/mlx4: Forbid using sysfs to change RoCE pkeys

Jack Morgenstein <jackm@dev.mellanox.co.il>
    IB/mlx4: Fix potential deadlock when sending mad to wire

Haggai Eran <haggaie@mellanox.com>
    IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow

Sagi Grimberg <sagig@mellanox.com>
    IB/iser: Fix possible bogus DMA unmapping

Sagi Grimberg <sagig@mellanox.com>
    IB/iser: Fix missing return status check in iser_send_data_out

Yishai Hadas <yishaih@mellanox.com>
    IB/uverbs: Fix race between ib_uverbs_open and remove_one

Christoph Hellwig <hch@lst.de>
    IB/uverbs: reject invalid or unknown opcodes

Mike Marciniszyn <mike.marciniszyn@intel.com>
    IB/qib: Change lkey table allocation to support more MRs

Bart Van Assche <bart.vanassche@sandisk.com>
    IB/srp: Stop the scsi_eh_<n> and scsi_tmf_<n> threads if login fails

Bart Van Assche <bart.vanassche@sandisk.com>
    IB/srp: Handle partial connection success correctly

Hans de Goede <hdegoede@redhat.com>
    ideapad-laptop: Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list

Hin-Tak Leung <htl10@users.sourceforge.net>
    hfs: fix B-tree corruption after insertion at position 0

Tyler Hicks <tyhicks@canonical.com>
    eCryptfs: Invalidate dcache entries when lower i_nlink is zero

Joerg Roedel <jroedel@suse.de>
    iommu/vt-d: Really use upper context table when necessary

Thierry Reding <treding@nvidia.com>
    iommu/tegra-smmu: Parameterize number of TLB lines

Will Deacon <will.deacon@arm.com>
    iommu/io-pgtable-arm: Unmap and free table when overwriting with block

Emil Medve <Emilian.Medve@Freescale.com>
    iommu/fsl: Really fix init section(s) content

NeilBrown <neilb@suse.com>
    md: flush ->event_work before stopping array.

NeilBrown <neilb@suse.com>
    md/raid10: always set reshape_safe when initializing reshape_position.

NeilBrown <neilb@suse.com>
    md/raid5: don't let shrink_slab shrink too far.

NeilBrown <neilb@suse.com>
    md/raid5: avoid races when changing cache size.

Jialing Fu <jlfu@marvell.com>
    mmc: core: fix race condition in mmc_wait_data_done

Jisheng Zhang <jszhang@marvell.com>
    mmc: sdhci: also get preset value and driver type for MMC_DDR52

Adam Lee <adam.lee@canonical.com>
    mmc: sdhci-pci: set the clear transfer mode register quirk for O2Micro

Jann Horn <jann@thejh.net>
    fs: Don't dump core if the corefile would become world-readable.

Jann Horn <jann@thejh.net>
    fs: if a coredump already exists, unlink and recreate with O_EXCL

Jaewon Kim <jaewon31.kim@samsung.com>
    vmscan: fix increasing nr_isolated incurred by putback unevictable pages

Helge Deller <deller@gmx.de>
    parisc: Filter out spurious interrupts in PA-RISC irq handler

John David Anglin <dave.anglin@bell.net>
    parisc: Use double word condition in 64bit CAS operation

Helge Deller <deller@gmx.de>
    PCI,parisc: Enable 64-bit bus addresses on PA-RISC

Mitja Spes <mitja@lxnav.com>
    rtc: abx80x: fix RTC write bit

Joonyoung Shim <jy0922.shim@samsung.com>
    rtc: s5m: fix to update ctrl register

Joonyoung Shim <jy0922.shim@samsung.com>
    rtc: s3c: fix disabled clocks for alarm

Trond Myklebust <trond.myklebust@primarydata.com>
    SUNRPC: Lock the transport layer on shutdown

Trond Myklebust <trond.myklebust@primarydata.com>
    SUNRPC: Ensure that we wait for connections to complete before retrying

Trond Myklebust <trond.myklebust@primarydata.com>
    SUNRPC: xs_reset_transport must mark the connection as disconnected

Trond Myklebust <trond.myklebust@primarydata.com>
    SUNRPC: Fix a thinko in xs_connect()

Pratyush Anand <panand@redhat.com>
    net: sunrpc: fix tracepoint Warning: unknown op '->'

Trond Myklebust <trond.myklebust@primarydata.com>
    Revert "NFSv4: Remove incorrect check in can_open_delegated()"

Trond Myklebust <trond.myklebust@primarydata.com>
    NFSv4.1: Fix a protocol issue with CLOSE stateids

Trond Myklebust <trond.myklebust@primarydata.com>
    NFSv4.1/flexfiles: Fix a protocol error in layoutreturn

Peng Tao <tao.peng@primarydata.com>
    NFS41/flexfiles: zero out DS write wcc

Trond Myklebust <trond.myklebust@primarydata.com>
    NFSv4: Force a post-op attribute update when holding a delegation

Peng Tao <tao.peng@primarydata.com>
    NFS41/flexfiles: update inode after write finishes

Trond Myklebust <trond.myklebust@primarydata.com>
    NFS: nfs_set_pgio_error sometimes misses errors

Kinglong Mee <kinglongmee@gmail.com>
    NFS: Fix a NULL pointer dereference of migration recovery ops for v4.2 client

Trond Myklebust <trond.myklebust@primarydata.com>
    NFSv4.1/pNFS: Fix borken function _same_data_server_addrs_locked()

Trond Myklebust <trond.myklebust@primarydata.com>
    NFS: Don't let the ctime override attribute barriers.

NeilBrown <neilb@suse.com>
    NFSv4: don't set SETATTR for O_RDONLY|O_EXCL

Jeff Layton <jlayton@poochiereds.net>
    nfsd: ensure that delegation stateid hash references are only put once

Jeff Layton <jlayton@poochiereds.net>
    nfsd: ensure that the ol stateid hash reference is only put once

Kinglong Mee <kinglongmee@gmail.com>
    nfsd: Fix an FS_LAYOUT_TYPES/LAYOUT_TYPES encode bug

Trond Myklebust <trond.myklebust@primarydata.com>
    NFSv4/pnfs: Ensure we don't miss a file extension

Filipe Manana <fdmanana@suse.com>
    Btrfs: check if previous transaction aborted to avoid fs corruption

Benoit Parrot <bparrot@ti.com>
    media: am437x-vpfe: Fix a race condition during release

Benoit Parrot <bparrot@ti.com>
    media: am437x-vpfe: Requested frame size and fmt overwritten by current sensor setting

Sakari Ailus <sakari.ailus@iki.fi>
    v4l: omap3isp: Fix sub-device power management code

David Härdeman <david@hardeman.nu>
    rc-core: fix remove uevent generation

Michal Hocko <mhocko@suse.com>
    mm: make page pfmemalloc check more robust

Minfei Huang <mnfhuang@gmail.com>
    x86/mm: Initialize pmd_idx in page_table_range_init_count()

Yinghai Lu <yinghai@kernel.org>
    mm: check if section present during memory block registering

Jeffery Miller <jmiller@neverware.com>
    Add radeon suspend/resume quirk for HP Compaq dc5750.

Jann Horn <jann@thejh.net>
    CIFS: fix type confusion in copy offload ioctl

Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    powerpc/mm: Recompute hash value after a failed update

Benjamin Herrenschmidt <benh@kernel.crashing.org>
    powerpc/boot: Specify ABI v2 when building an LE boot wrapper

Leonidas Da Silva Barbosa <leosilva@linux.vnet.ibm.com>
    crypto: vmx - Adding enable_kernel_vsx() to access VSX instructions

Leonidas Da Silva Barbosa <leosilva@linux.vnet.ibm.com>
    powerpc: Uncomment and make enable_kernel_vsx() routine available

Thomas Huth <thuth@redhat.com>
    powerpc/rtas: Introduce rtas_get_sensor_fast() for IRQ handlers

Michael Ellerman <mpe@ellerman.id.au>
    powerpc/mm: Fix pte_pagesize_index() crash on 4K w/64K hash

Gavin Shan <gwshan@linux.vnet.ibm.com>
    powerpc/eeh: Fix fenced PHB caused by eeh_slot_error_detail()

Daniel Axtens <dja@axtens.net>
    powerpc/eeh: Probe after unbalanced kref check

Gavin Shan <gwshan@linux.vnet.ibm.com>
    powerpc/pseries: Fix corrupted pdn list

David Dueck <davidcdueck@googlemail.com>
    pinctrl: at91: fix null pointer dereference

Niranjan Sivakumar <ns253@cornell.edu>
    ALSA: hda - Fix white noise on Dell M3800

Woodrow Shen <woodrow.shen@canonical.com>
    ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop.

Takashi Iwai <tiwai@suse.de>
    ALSA: hda - Use ALC880_FIXUP_FUJITSU for FSC Amilo M1437

Takashi Iwai <tiwai@suse.de>
    ALSA: hda - Enable headphone jack detect on old Fujitsu laptops

Yao-Wen Mao <yaowen@google.com>
    ALSA: usb-audio: correct the value cache check.

Takashi Iwai <tiwai@suse.de>
    Input: evdev - do not report errors form flush()

Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Input: synaptics - fix handling of disabling gesture mode

Marc Zyngier <marc.zyngier@arm.com>
    arm64: KVM: Disable virtual timer even if the guest is not using it

Will Deacon <will.deacon@arm.com>
    KVM: arm64: add workaround for Cortex-A57 erratum #852523

Pavel Fedin <p.fedin@samsung.com>
    arm/arm64: KVM: vgic: Check for !irqchip_in_kernel() when mapping resources

Will Deacon <will.deacon@arm.com>
    arm64: errata: add module build workaround for erratum #843419

Will Deacon <will.deacon@arm.com>
    arm64: head.S: initialise mdcr_el2 in el2_setup

Will Deacon <will.deacon@arm.com>
    arm64: compat: fix vfp save/restore across signal handlers in big-endian

Ard Biesheuvel <ard.biesheuvel@linaro.org>
    arm64: set MAX_MEMBLOCK_ADDR according to linear region size

Ard Biesheuvel <ard.biesheuvel@linaro.org>
    of/fdt: make memblock maximum physical address arch configurable

Ard Biesheuvel <ard.biesheuvel@linaro.org>
    arm64: flush FP/SIMD state correctly after execve()

Jeff Vander Stoep <jeffv@google.com>
    arm64: kconfig: Move LIST_POISON to a safe value

Theodore Ts'o <tytso@mit.edu>
    Revert "ext4: remove block_device_ejected"

Eric Sandeen <sandeen@redhat.com>
    ext4: don't manipulate recovery flag when freezing no-journal fs

Daniel Axtens <dja@axtens.net>
    cxl: Fix unbalanced pci_dev_get in cxl_probe

Daniel Axtens <dja@axtens.net>
    cxl: Remove racy attempt to force EEH invocation in reset

Bob Copeland <me@bobcopeland.com>
    mac80211: enable assoc check for mesh interfaces

Markos Chandras <markos.chandras@imgtec.com>
    MIPS: math-emu: Emulate missing BC1{EQ,NE}Z instructions

Markos Chandras <markos.chandras@imgtec.com>
    MIPS: math-emu: Allow m{f,t}hc emulation on MIPS R6

Jean Delvare <jdelvare@suse.de>
    tg3: Fix temperature reporting

Shota Suzuki <suzuki_shota_t3@lab.ntt.co.jp>
    igb: Fix oops caused by missing queue pairing

Larry Finger <Larry.Finger@lwfinger.net>
    rtlwifi: rtl8821ae: Fix an expression that is always false

Adrien Schildknecht <adrien+dev@schischi.me>
    rtlwifi: rtl8192cu: Add new device ID

Eric W. Biederman <ebiederm@xmission.com>
    unshare: Unsharing a thread does not require unsharing a vm

Ming Lei <ming.lei@canonical.com>
    blk-mq: fix buffer overflow when reading sysfs file of 'pending'

Christophe Ricard <christophe.ricard@gmail.com>
    nfc: nci: hci: Add check on skb nci_hci_send_cmd parameter

Christophe Ricard <christophe.ricard@gmail.com>
    NFC: st21nfca: fix use of uninitialized variables in error path


-------------

Diffstat:

 Makefile                                          |   4 +-
 arch/arm/boot/compressed/decompress.c             |   2 +-
 arch/arm/kvm/arm.c                                |   2 +-
 arch/arm64/Kconfig                                |  20 +++
 arch/arm64/Makefile                               |   4 +
 arch/arm64/include/asm/memory.h                   |   8 +
 arch/arm64/kernel/fpsimd.c                        |   1 +
 arch/arm64/kernel/head.S                          |   5 +
 arch/arm64/kernel/module.c                        |   2 +
 arch/arm64/kernel/signal32.c                      |  47 ++++--
 arch/arm64/kvm/hyp.S                              |   9 +-
 arch/m32r/boot/compressed/misc.c                  |   3 +-
 arch/mips/boot/compressed/decompress.c            |   4 +-
 arch/mips/math-emu/cp1emu.c                       |  24 ++-
 arch/parisc/kernel/irq.c                          |   8 +-
 arch/parisc/kernel/syscall.S                      |   2 +-
 arch/powerpc/boot/Makefile                        |   3 +
 arch/powerpc/include/asm/pgtable-ppc64.h          |  14 +-
 arch/powerpc/include/asm/rtas.h                   |   1 +
 arch/powerpc/include/asm/switch_to.h              |   1 +
 arch/powerpc/kernel/eeh.c                         |  27 +++-
 arch/powerpc/kernel/process.c                     |   3 -
 arch/powerpc/kernel/rtas.c                        |  17 ++
 arch/powerpc/mm/hugepage-hash64.c                 |   3 +-
 arch/powerpc/platforms/pseries/ras.c              |   3 +-
 arch/powerpc/platforms/pseries/setup.c            |   5 +
 arch/s390/boot/compressed/misc.c                  |   2 +-
 arch/sh/boot/compressed/misc.c                    |   2 +-
 arch/unicore32/boot/compressed/misc.c             |   4 +-
 arch/x86/boot/compressed/misc.c                   |   3 +-
 arch/x86/mm/init_32.c                             |   1 +
 block/blk-mq-sysfs.c                              |  25 ++-
 drivers/base/node.c                               |  10 ++
 drivers/crypto/vmx/aes.c                          |   3 +
 drivers/crypto/vmx/aes_cbc.c                      |   3 +
 drivers/crypto/vmx/aes_ctr.c                      |   3 +
 drivers/crypto/vmx/ghash.c                        |   4 +
 drivers/gpu/drm/radeon/radeon_combios.c           |   8 +
 drivers/infiniband/core/uverbs.h                  |   3 +-
 drivers/infiniband/core/uverbs_cmd.c              |  10 +-
 drivers/infiniband/core/uverbs_main.c             |  43 +++--
 drivers/infiniband/hw/mlx4/ah.c                   |   6 +-
 drivers/infiniband/hw/mlx4/cq.c                   |   2 +-
 drivers/infiniband/hw/mlx4/mcg.c                  |   7 +-
 drivers/infiniband/hw/mlx4/sysfs.c                |   5 +-
 drivers/infiniband/hw/mlx5/mr.c                   |  12 --
 drivers/infiniband/hw/qib/qib_keys.c              |   4 +
 drivers/infiniband/hw/qib/qib_verbs.c             |  14 +-
 drivers/infiniband/hw/qib/qib_verbs.h             |   2 +
 drivers/infiniband/ulp/iser/iscsi_iser.c          |  12 +-
 drivers/infiniband/ulp/iser/iscsi_iser.h          |   2 +
 drivers/infiniband/ulp/iser/iser_initiator.c      |   8 +-
 drivers/infiniband/ulp/srp/ib_srp.c               |  12 +-
 drivers/input/evdev.c                             |  13 +-
 drivers/input/mouse/synaptics.c                   |  12 +-
 drivers/iommu/fsl_pamu.c                          |  26 +--
 drivers/iommu/intel-iommu.c                       |   2 +-
 drivers/iommu/io-pgtable-arm.c                    |  17 +-
 drivers/iommu/tegra-smmu.c                        |   9 +-
 drivers/isdn/gigaset/ser-gigaset.c                |  11 +-
 drivers/md/md.c                                   |   2 +
 drivers/md/raid10.c                               |   5 +-
 drivers/md/raid5.c                                |  34 +++-
 drivers/md/raid5.h                                |   3 +-
 drivers/media/platform/am437x/am437x-vpfe.c       |  16 +-
 drivers/media/platform/omap3isp/isp.c             |   4 +-
 drivers/media/rc/rc-main.c                        |   3 -
 drivers/memory/tegra/tegra114.c                   |   1 +
 drivers/memory/tegra/tegra124.c                   |   1 +
 drivers/memory/tegra/tegra30.c                    |   1 +
 drivers/misc/cxl/pci.c                            |  18 ---
 drivers/mmc/core/core.c                           |   6 +-
 drivers/mmc/host/sdhci-pci.c                      |   1 +
 drivers/mmc/host/sdhci.c                          |   4 +-
 drivers/net/bonding/bond_main.c                   |  21 +++
 drivers/net/ethernet/broadcom/tg3.c               |   2 +-
 drivers/net/ethernet/brocade/bna/bnad.c           |   2 +-
 drivers/net/ethernet/intel/fm10k/fm10k_main.c     |   2 +-
 drivers/net/ethernet/intel/igb/igb.h              |   1 +
 drivers/net/ethernet/intel/igb/igb_ethtool.c      |   5 +-
 drivers/net/ethernet/intel/igb/igb_main.c         |  18 ++-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |   2 +-
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |   2 +-
 drivers/net/ethernet/mellanox/mlx4/eq.c           |   4 +-
 drivers/net/ethernet/rocker/rocker.c              |   1 +
 drivers/net/ethernet/stmicro/stmmac/descs.h       |   2 +
 drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c    |   3 +-
 drivers/net/ethernet/stmicro/stmmac/enh_desc.c    |   3 +-
 drivers/net/ethernet/stmicro/stmmac/norm_desc.c   |   3 +-
 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |  49 +++---
 drivers/net/virtio_net.c                          |   3 +-
 drivers/net/wireless/rtlwifi/rtl8192cu/sw.c       |   1 +
 drivers/net/wireless/rtlwifi/rtl8821ae/hw.c       |   2 +-
 drivers/net/wireless/rtlwifi/rtl8821ae/reg.h      |   1 +
 drivers/net/xen-netback/netback.c                 |   6 +-
 drivers/nfc/st21nfca/st21nfca.c                   |  11 +-
 drivers/of/fdt.c                                  |  12 +-
 drivers/parisc/lba_pci.c                          |   7 +-
 drivers/pci/Kconfig                               |   2 +-
 drivers/pinctrl/pinctrl-at91.c                    |  15 ++
 drivers/platform/x86/ideapad-laptop.c             |   7 +
 drivers/rtc/rtc-abx80x.c                          |   2 +-
 drivers/rtc/rtc-s3c.c                             |  24 ++-
 drivers/rtc/rtc-s5m.c                             |  10 ++
 fs/btrfs/transaction.c                            |   3 +
 fs/cifs/ioctl.c                                   |   6 +
 fs/coredump.c                                     |  46 +++++-
 fs/ecryptfs/dentry.c                              |  16 +-
 fs/ext4/super.c                                   |  30 +++-
 fs/hfs/bnode.c                                    |   9 +-
 fs/hfs/brec.c                                     |  20 +--
 fs/hfsplus/bnode.c                                |   3 -
 fs/jbd2/checkpoint.c                              |  39 ++++-
 fs/jbd2/commit.c                                  |   2 +-
 fs/jbd2/journal.c                                 |  11 +-
 fs/nfs/flexfilelayout/flexfilelayout.c            |   5 +
 fs/nfs/flexfilelayout/flexfilelayoutdev.c         |   7 +-
 fs/nfs/inode.c                                    |  15 +-
 fs/nfs/nfs4proc.c                                 |  20 ++-
 fs/nfs/pagelist.c                                 |   4 +-
 fs/nfs/pnfs_nfs.c                                 |  33 ++--
 fs/nfs/write.c                                    |  15 +-
 fs/nfsd/nfs4state.c                               |  84 ++++++----
 fs/nfsd/nfs4xdr.c                                 |  45 ++++--
 include/linux/jbd2.h                              |   3 +-
 include/linux/mm.h                                |  28 ++++
 include/linux/mm_types.h                          |   9 --
 include/linux/skbuff.h                            |  14 +-
 include/linux/sunrpc/xprtsock.h                   |   3 +
 include/net/act_api.h                             |   8 +-
 include/net/ip.h                                  |   1 +
 include/soc/tegra/mc.h                            |   1 +
 include/trace/events/sunrpc.h                     |  21 ++-
 kernel/fork.c                                     |  28 ++--
 lib/decompress_bunzip2.c                          |   6 +-
 lib/decompress_inflate.c                          |  31 +++-
 lib/decompress_unlz4.c                            |   6 +-
 lib/decompress_unlzma.c                           |   7 +-
 lib/decompress_unlzo.c                            |  13 +-
 lib/decompress_unxz.c                             |  12 +-
 lib/rhashtable.c                                  |   4 +-
 mm/page_alloc.c                                   |   7 +-
 mm/slab.c                                         |   4 +-
 mm/slub.c                                         |   2 +-
 mm/vmscan.c                                       |   2 +-
 net/bridge/br_forward.c                           |   1 +
 net/bridge/br_mdb.c                               |   3 +-
 net/bridge/br_netlink.c                           |  14 +-
 net/core/datagram.c                               |  57 +++++--
 net/core/dev.c                                    |  43 +++--
 net/core/pktgen.c                                 |   4 +-
 net/core/request_sock.c                           |   8 +-
 net/core/rtnetlink.c                              | 187 +++++++++++-----------
 net/core/skbuff.c                                 |   2 +-
 net/dsa/slave.c                                   |   3 +-
 net/ipv4/datagram.c                               |  16 +-
 net/ipv4/fib_trie.c                               |   6 +-
 net/ipv4/inet_connection_sock.c                   |   2 +-
 net/ipv4/ip_fragment.c                            |   7 +-
 net/ipv4/ip_tunnel.c                              |   8 +-
 net/ipv4/tcp_ipv4.c                               |   2 +-
 net/ipv4/udp.c                                    |  13 +-
 net/ipv6/datagram.c                               |  20 ++-
 net/ipv6/ip6_input.c                              |   6 +-
 net/ipv6/ip6_offload.c                            |   2 -
 net/ipv6/tcp_ipv6.c                               |   2 +-
 net/mac80211/tx.c                                 |   3 -
 net/netlink/af_netlink.c                          |  84 ++++++----
 net/nfc/nci/hci.c                                 |   2 +-
 net/packet/af_packet.c                            |  11 +-
 net/rds/info.c                                    |   2 +-
 net/sched/act_api.c                               |  11 +-
 net/sched/act_bpf.c                               |  50 ++++--
 net/sched/cls_bpf.c                               |   2 +-
 net/sched/cls_flow.c                              |   5 +-
 net/sched/sch_fq_codel.c                          |   2 +-
 net/sunrpc/xprt.c                                 |   6 +
 net/sunrpc/xprtsock.c                             |  21 ++-
 net/tipc/socket.c                                 |   1 +
 sound/pci/hda/patch_realtek.c                     |  12 +-
 sound/usb/mixer.c                                 |   2 +-
 181 files changed, 1431 insertions(+), 656 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1233454 — [PATCH 4.1 087/159] md/raid10: always set reshape_safe when initializing reshape_position.

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 087/159] md/raid10: always set reshape_safe when initializing reshape_position.
Message-ID<qd5vX-3Ss-13@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: NeilBrown <neilb@suse.com>

commit 299b0685e31c9f3dcc2d58ee3beca761a40b44b3 upstream.

'reshape_position' tracks where in the reshape we have reached.
'reshape_safe' tracks where in the reshape we have safely recorded
in the metadata.

These are compared to determine when to update the metadata.
So it is important that reshape_safe is initialised properly.
Currently it isn't.  When starting a reshape from the beginning
it usually has the correct value by luck.  But when reducing the
number of devices in a RAID10, it has the wrong value and this leads
to the metadata not being updated correctly.
This can lead to corruption if the reshape is not allowed to complete.

This patch is suitable for any -stable kernel which supports RAID10
reshape, which is 3.5 and later.

Fixes: 3ea7daa5d7fd ("md/raid10: add reshape support")
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/raid10.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -3566,6 +3566,7 @@ static struct r10conf *setup_conf(struct
 			/* far_copies must be 1 */
 			conf->prev.stride = conf->dev_sectors;
 	}
+	conf->reshape_safe = conf->reshape_progress;
 	spin_lock_init(&conf->device_lock);
 	INIT_LIST_HEAD(&conf->retry_list);
 
@@ -3770,7 +3771,6 @@ static int run(struct mddev *mddev)
 		}
 		conf->offset_diff = min_offset_diff;
 
-		conf->reshape_safe = conf->reshape_progress;
 		clear_bit(MD_RECOVERY_SYNC, &mddev->recovery);
 		clear_bit(MD_RECOVERY_CHECK, &mddev->recovery);
 		set_bit(MD_RECOVERY_RESHAPE, &mddev->recovery);
@@ -4113,6 +4113,7 @@ static int raid10_start_reshape(struct m
 		conf->reshape_progress = size;
 	} else
 		conf->reshape_progress = 0;
+	conf->reshape_safe = conf->reshape_progress;
 	spin_unlock_irq(&conf->device_lock);
 
 	if (mddev->delta_disks && mddev->bitmap) {
@@ -4180,6 +4181,7 @@ abort:
 		rdev->new_data_offset = rdev->data_offset;
 	smp_wmb();
 	conf->reshape_progress = MaxSector;
+	conf->reshape_safe = MaxSector;
 	mddev->reshape_position = MaxSector;
 	spin_unlock_irq(&conf->device_lock);
 	return ret;
@@ -4534,6 +4536,7 @@ static void end_reshape(struct r10conf *
 	md_finish_reshape(conf->mddev);
 	smp_wmb();
 	conf->reshape_progress = MaxSector;
+	conf->reshape_safe = MaxSector;
 	spin_unlock_irq(&conf->device_lock);
 
 	/* read-ahead size must cover two whole stripes, which is


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233456 — [PATCH 4.1 090/159] iommu/io-pgtable-arm: Unmap and free table when overwriting with block

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 090/159] iommu/io-pgtable-arm: Unmap and free table when overwriting with block
Message-ID<qd5vX-3Ss-19@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Will Deacon <will.deacon@arm.com>

commit cf27ec930be906e142c752f9161197d69ca534d7 upstream.

When installing a block mapping, we unconditionally overwrite a non-leaf
PTE if we find one. However, this can cause a problem if the following
sequence of events occur:

  (1) iommu_map called for a 4k (i.e. PAGE_SIZE) mapping at some address
      - We initialise the page table all the way down to a leaf entry
      - No TLB maintenance is required, because we're going from invalid
        to valid.

  (2) iommu_unmap is called on the mapping installed in (1)
      - We walk the page table to the final (leaf) entry and zero it
      - We only changed a valid leaf entry, so we invalidate leaf-only

  (3) iommu_map is called on the same address as (1), but this time for
      a 2MB (i.e. BLOCK_SIZE) mapping)
      - We walk the page table down to the penultimate level, where we
        find a table entry
      - We overwrite the table entry with a block mapping and return
        without any TLB maintenance and without freeing the memory used
        by the now-orphaned table.

This last step can lead to a walk-cache caching the overwritten table
entry, causing unexpected faults when the new mapping is accessed by a
device. One way to fix this would be to collapse the page table when
freeing the last page at a given level, but this would require expensive
iteration on every map call. Instead, this patch detects the case when
we are overwriting a table entry and explicitly unmaps the table first,
which takes care of both freeing and TLB invalidation.

Reported-by: Brian Starkey <brian.starkey@arm.com>
Tested-by: Brian Starkey <brian.starkey@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/iommu/io-pgtable-arm.c |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -200,6 +200,10 @@ typedef u64 arm_lpae_iopte;
 
 static bool selftest_running = false;
 
+static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
+			    unsigned long iova, size_t size, int lvl,
+			    arm_lpae_iopte *ptep);
+
 static int arm_lpae_init_pte(struct arm_lpae_io_pgtable *data,
 			     unsigned long iova, phys_addr_t paddr,
 			     arm_lpae_iopte prot, int lvl,
@@ -207,10 +211,21 @@ static int arm_lpae_init_pte(struct arm_
 {
 	arm_lpae_iopte pte = prot;
 
-	/* We require an unmap first */
 	if (iopte_leaf(*ptep, lvl)) {
+		/* We require an unmap first */
 		WARN_ON(!selftest_running);
 		return -EEXIST;
+	} else if (iopte_type(*ptep, lvl) == ARM_LPAE_PTE_TYPE_TABLE) {
+		/*
+		 * We need to unmap and free the old table before
+		 * overwriting it with a block entry.
+		 */
+		arm_lpae_iopte *tblp;
+		size_t sz = ARM_LPAE_BLOCK_SIZE(lvl, data);
+
+		tblp = ptep - ARM_LPAE_LVL_IDX(iova, lvl, data);
+		if (WARN_ON(__arm_lpae_unmap(data, iova, sz, lvl, tblp) != sz))
+			return -EINVAL;
 	}
 
 	if (data->iop.cfg.quirks & IO_PGTABLE_QUIRK_ARM_NS)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233457 — [PATCH 4.1 042/159] powerpc/mm: Recompute hash value after a failed update

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 042/159] powerpc/mm: Recompute hash value after a failed update
Message-ID<qd5vX-3Ss-17@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>

commit 36b35d5d807b7e57aff7d08e63de8b17731ee211 upstream.

If we had secondary hash flag set, we ended up modifying hash value in
the updatepp code path. Hence with a failed updatepp we will be using
a wrong hash value for the following hash insert. Fix this by
recomputing hash before insert.

Without this patch we can end up with using wrong slot number in linux
pte. That can result in us missing an hash pte update or invalidate
which can cause memory corruption or even machine check.

Fixes: 6d492ecc6489 ("powerpc/THP: Add code to handle HPTE faults for hugepages")
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Reviewed-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/powerpc/mm/hugepage-hash64.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/arch/powerpc/mm/hugepage-hash64.c
+++ b/arch/powerpc/mm/hugepage-hash64.c
@@ -85,7 +85,6 @@ int __hash_page_thp(unsigned long ea, un
 	BUG_ON(index >= 4096);
 
 	vpn = hpt_vpn(ea, vsid, ssize);
-	hash = hpt_hash(vpn, shift, ssize);
 	hpte_slot_array = get_hpte_slot_array(pmdp);
 	if (psize == MMU_PAGE_4K) {
 		/*
@@ -101,6 +100,7 @@ int __hash_page_thp(unsigned long ea, un
 	valid = hpte_valid(hpte_slot_array, index);
 	if (valid) {
 		/* update the hpte bits */
+		hash = hpt_hash(vpn, shift, ssize);
 		hidx =  hpte_hash_index(hpte_slot_array, index);
 		if (hidx & _PTEIDX_SECONDARY)
 			hash = ~hash;
@@ -126,6 +126,7 @@ int __hash_page_thp(unsigned long ea, un
 	if (!valid) {
 		unsigned long hpte_group;
 
+		hash = hpt_hash(vpn, shift, ssize);
 		/* insert new entry */
 		pa = pmd_pfn(__pmd(old_pmd)) << PAGE_SHIFT;
 		new_pmd |= _PAGE_HASHPTE;


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233458 — [PATCH 4.1 040/159] crypto: vmx - Adding enable_kernel_vsx() to access VSX instructions

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 040/159] crypto: vmx - Adding enable_kernel_vsx() to access VSX instructions
Message-ID<qd5vY-3Ss-25@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Leonidas Da Silva Barbosa <leosilva@linux.vnet.ibm.com>

commit 2d6f0600b2cd755959527230ef5a6fba97bb762a upstream.

vmx-crypto driver make use of some VSX instructions which are
only available if VSX is enabled. Running in cases where VSX
are not enabled vmx-crypto fails in a VSX exception.

In order to fix this enable_kernel_vsx() was added to turn on
VSX instructions for vmx-crypto.

Signed-off-by: Leonidas S. Barbosa <leosilva@linux.vnet.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/crypto/vmx/aes.c     |    3 +++
 drivers/crypto/vmx/aes_cbc.c |    3 +++
 drivers/crypto/vmx/aes_ctr.c |    3 +++
 drivers/crypto/vmx/ghash.c   |    4 ++++
 4 files changed, 13 insertions(+)

--- a/drivers/crypto/vmx/aes.c
+++ b/drivers/crypto/vmx/aes.c
@@ -80,6 +80,7 @@ static int p8_aes_setkey(struct crypto_t
 
     pagefault_disable();
     enable_kernel_altivec();
+    enable_kernel_vsx();
     ret = aes_p8_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
     ret += aes_p8_set_decrypt_key(key, keylen * 8, &ctx->dec_key);
     pagefault_enable();
@@ -97,6 +98,7 @@ static void p8_aes_encrypt(struct crypto
     } else {
         pagefault_disable();
         enable_kernel_altivec();
+        enable_kernel_vsx();
         aes_p8_encrypt(src, dst, &ctx->enc_key);
         pagefault_enable();
     }
@@ -111,6 +113,7 @@ static void p8_aes_decrypt(struct crypto
     } else {
         pagefault_disable();
         enable_kernel_altivec();
+        enable_kernel_vsx();
         aes_p8_decrypt(src, dst, &ctx->dec_key);
         pagefault_enable();
     }
--- a/drivers/crypto/vmx/aes_cbc.c
+++ b/drivers/crypto/vmx/aes_cbc.c
@@ -81,6 +81,7 @@ static int p8_aes_cbc_setkey(struct cryp
 
     pagefault_disable();
     enable_kernel_altivec();
+    enable_kernel_vsx();
     ret = aes_p8_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
     ret += aes_p8_set_decrypt_key(key, keylen * 8, &ctx->dec_key);
     pagefault_enable();
@@ -108,6 +109,7 @@ static int p8_aes_cbc_encrypt(struct blk
     } else {
         pagefault_disable();
         enable_kernel_altivec();
+        enable_kernel_vsx();
 
 	blkcipher_walk_init(&walk, dst, src, nbytes);
         ret = blkcipher_walk_virt(desc, &walk);
@@ -143,6 +145,7 @@ static int p8_aes_cbc_decrypt(struct blk
     } else {
         pagefault_disable();
         enable_kernel_altivec();
+        enable_kernel_vsx();
 
 	blkcipher_walk_init(&walk, dst, src, nbytes);
         ret = blkcipher_walk_virt(desc, &walk);
--- a/drivers/crypto/vmx/aes_ctr.c
+++ b/drivers/crypto/vmx/aes_ctr.c
@@ -79,6 +79,7 @@ static int p8_aes_ctr_setkey(struct cryp
 
     pagefault_disable();
     enable_kernel_altivec();
+    enable_kernel_vsx();
     ret = aes_p8_set_encrypt_key(key, keylen * 8, &ctx->enc_key);
     pagefault_enable();
 
@@ -97,6 +98,7 @@ static void p8_aes_ctr_final(struct p8_a
 
     pagefault_disable();
     enable_kernel_altivec();
+    enable_kernel_vsx();
     aes_p8_encrypt(ctrblk, keystream, &ctx->enc_key);
     pagefault_enable();
 
@@ -127,6 +129,7 @@ static int p8_aes_ctr_crypt(struct blkci
         while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) {
             pagefault_disable();
             enable_kernel_altivec();
+            enable_kernel_vsx();
             aes_p8_ctr32_encrypt_blocks(walk.src.virt.addr, walk.dst.virt.addr,
                 (nbytes & AES_BLOCK_MASK)/AES_BLOCK_SIZE, &ctx->enc_key, walk.iv);
             pagefault_enable();
--- a/drivers/crypto/vmx/ghash.c
+++ b/drivers/crypto/vmx/ghash.c
@@ -116,6 +116,7 @@ static int p8_ghash_setkey(struct crypto
 
     pagefault_disable();
     enable_kernel_altivec();
+    enable_kernel_vsx();
     enable_kernel_fp();
     gcm_init_p8(ctx->htable, (const u64 *) key);
     pagefault_enable();
@@ -142,6 +143,7 @@ static int p8_ghash_update(struct shash_
                     GHASH_DIGEST_SIZE - dctx->bytes);
             pagefault_disable();
             enable_kernel_altivec();
+            enable_kernel_vsx();
             enable_kernel_fp();
             gcm_ghash_p8(dctx->shash, ctx->htable, dctx->buffer,
                     GHASH_DIGEST_SIZE);
@@ -154,6 +156,7 @@ static int p8_ghash_update(struct shash_
         if (len) {
             pagefault_disable();
             enable_kernel_altivec();
+            enable_kernel_vsx();
             enable_kernel_fp();
             gcm_ghash_p8(dctx->shash, ctx->htable, src, len);
             pagefault_enable();
@@ -182,6 +185,7 @@ static int p8_ghash_final(struct shash_d
                 dctx->buffer[i] = 0;
             pagefault_disable();
             enable_kernel_altivec();
+            enable_kernel_vsx();
             enable_kernel_fp();
             gcm_ghash_p8(dctx->shash, ctx->htable, dctx->buffer,
                     GHASH_DIGEST_SIZE);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233459 — [PATCH 4.1 044/159] Add radeon suspend/resume quirk for HP Compaq dc5750.

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 044/159] Add radeon suspend/resume quirk for HP Compaq dc5750.
Message-ID<qd5vY-3Ss-27@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Jeffery Miller <jmiller@neverware.com>

commit 09bfda10e6efd7b65bcc29237bee1765ed779657 upstream.

With the radeon driver loaded the HP Compaq dc5750
Small Form Factor machine fails to resume from suspend.
Adding a quirk similar to other devices avoids
the problem and the system resumes properly.

Signed-off-by: Jeffery Miller <jmiller@neverware.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/gpu/drm/radeon/radeon_combios.c |    8 ++++++++
 1 file changed, 8 insertions(+)

--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
@@ -3387,6 +3387,14 @@ void radeon_combios_asic_init(struct drm
 	    rdev->pdev->subsystem_device == 0x30ae)
 		return;
 
+	/* quirk for rs4xx HP Compaq dc5750 Small Form Factor to make it resume
+	 * - it hangs on resume inside the dynclk 1 table.
+	 */
+	if (rdev->family == CHIP_RS480 &&
+	    rdev->pdev->subsystem_vendor == 0x103c &&
+	    rdev->pdev->subsystem_device == 0x280a)
+		return;
+
 	/* DYN CLK 1 */
 	table = combios_get_table_offset(dev, COMBIOS_DYN_CLK_1_TABLE);
 	if (table)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233460 — [PATCH 4.1 078/159] parisc: Filter out spurious interrupts in PA-RISC irq handler

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 078/159] parisc: Filter out spurious interrupts in PA-RISC irq handler
Message-ID<qd5vY-3Ss-21@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Helge Deller <deller@gmx.de>

commit b1b4e435e4ef7de77f07bf2a42c8380b960c2d44 upstream.

When detecting a serial port on newer PA-RISC machines (with iosapic) we have a
long way to go to find the right IRQ line, registering it, then registering the
serial port and the irq handler for the serial port. During this phase spurious
interrupts for the serial port may happen which then crashes the kernel because
the action handler might not have been set up yet.

So, basically it's a race condition between the serial port hardware and the
CPU which sets up the necessary fields in the irq sructs. The main reason for
this race is, that we unmask the serial port irqs too early without having set
up everything properly before (which isn't easily possible because we need the
IRQ number to register the serial ports).

This patch is a work-around for this problem. It adds checks to the CPU irq
handler to verify if the IRQ action field has been initialized already. If not,
we just skip this interrupt (which isn't critical for a serial port at bootup).
The real fix would probably involve rewriting all PA-RISC specific IRQ code
(for CPU, IOSAPIC, GSC and EISA) to use IRQ domains with proper parenting of
the irq chips and proper irq enabling along this line.

This bug has been in the PA-RISC port since the beginning, but the crashes
happened very rarely with currently used hardware.  But on the latest machine
which I bought (a C8000 workstation), which uses the fastest CPUs (4 x PA8900,
1GHz) and which has the largest possible L1 cache size (64MB each), the kernel
crashed at every boot because of this race. So, without this patch the machine
would currently be unuseable.

For the record, here is the flow logic:
1. serial_init_chip() in 8250_gsc.c calls iosapic_serial_irq().
2. iosapic_serial_irq() calls txn_alloc_irq() to find the irq.
3. iosapic_serial_irq() calls cpu_claim_irq() to register the CPU irq
4. cpu_claim_irq() unmasks the CPU irq (which it shouldn't!)
5. serial_init_chip() then registers the 8250 port.
Problems:
- In step 4 the CPU irq shouldn't have been registered yet, but after step 5
- If serial irq happens between 4 and 5 have finished, the kernel will crash

Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/parisc/kernel/irq.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -507,8 +507,8 @@ void do_cpu_irq_mask(struct pt_regs *reg
 	struct pt_regs *old_regs;
 	unsigned long eirr_val;
 	int irq, cpu = smp_processor_id();
-#ifdef CONFIG_SMP
 	struct irq_desc *desc;
+#ifdef CONFIG_SMP
 	cpumask_t dest;
 #endif
 
@@ -521,8 +521,12 @@ void do_cpu_irq_mask(struct pt_regs *reg
 		goto set_out;
 	irq = eirr_to_irq(eirr_val);
 
-#ifdef CONFIG_SMP
+	/* Filter out spurious interrupts, mostly from serial port at bootup */
 	desc = irq_to_desc(irq);
+	if (unlikely(!desc->action))
+		goto set_out;
+
+#ifdef CONFIG_SMP
 	cpumask_copy(&dest, desc->irq_data.affinity);
 	if (irqd_is_per_cpu(&desc->irq_data) &&
 	    !cpumask_test_cpu(smp_processor_id(), &dest)) {


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233461 — [PATCH 4.1 037/159] powerpc/mm: Fix pte_pagesize_index() crash on 4K w/64K hash

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 037/159] powerpc/mm: Fix pte_pagesize_index() crash on 4K w/64K hash
Message-ID<qd5vY-3Ss-29@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Michael Ellerman <mpe@ellerman.id.au>

commit 74b5037baa2011a2799e2c43adde7d171b072f9e upstream.

The powerpc kernel can be built to have either a 4K PAGE_SIZE or a 64K
PAGE_SIZE.

However when built with a 4K PAGE_SIZE there is an additional config
option which can be enabled, PPC_HAS_HASH_64K, which means the kernel
also knows how to hash a 64K page even though the base PAGE_SIZE is 4K.

This is used in one obscure configuration, to support 64K pages for SPU
local store on the Cell processor when the rest of the kernel is using
4K pages.

In this configuration, pte_pagesize_index() is defined to just pass
through its arguments to get_slice_psize(). However pte_pagesize_index()
is called for both user and kernel addresses, whereas get_slice_psize()
only knows how to handle user addresses.

This has been broken forever, however until recently it happened to
work. That was because in get_slice_psize() the large kernel address
would cause the right shift of the slice mask to return zero.

However in commit 7aa0727f3302 ("powerpc/mm: Increase the slice range to
64TB"), the get_slice_psize() code was changed so that instead of a
right shift we do an array lookup based on the address. When passed a
kernel address this means we index way off the end of the slice array
and return random junk.

That is only fatal if we happen to hit something non-zero, but when we
do return a non-zero value we confuse the MMU code and eventually cause
a check stop.

This fix is ugly, but simple. When we're called for a kernel address we
return 4K, which is always correct in this configuration, otherwise we
use the slice mask.

Fixes: 7aa0727f3302 ("powerpc/mm: Increase the slice range to 64TB")
Reported-by: Cyril Bur <cyrilbur@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/powerpc/include/asm/pgtable-ppc64.h |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

--- a/arch/powerpc/include/asm/pgtable-ppc64.h
+++ b/arch/powerpc/include/asm/pgtable-ppc64.h
@@ -135,7 +135,19 @@
 #define pte_iterate_hashed_end() } while(0)
 
 #ifdef CONFIG_PPC_HAS_HASH_64K
-#define pte_pagesize_index(mm, addr, pte)	get_slice_psize(mm, addr)
+/*
+ * We expect this to be called only for user addresses or kernel virtual
+ * addresses other than the linear mapping.
+ */
+#define pte_pagesize_index(mm, addr, pte)			\
+	({							\
+		unsigned int psize;				\
+		if (is_kernel_addr(addr))			\
+			psize = MMU_PAGE_4K;			\
+		else						\
+			psize = get_slice_psize(mm, addr);	\
+		psize;						\
+	})
 #else
 #define pte_pagesize_index(mm, addr, pte)	MMU_PAGE_4K
 #endif


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233462 — [PATCH 4.1 062/159] NFS41/flexfiles: update inode after write finishes

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 062/159] NFS41/flexfiles: update inode after write finishes
Message-ID<qd5vY-3Ss-31@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Peng Tao <tao.peng@primarydata.com>

commit 69f230d907e8c1ca3f9bd528993eeb98f712b0dd upstream.

Otherwise we break fstest case tests/read_write/mctime.t

Does files layout need the same fix as well?

Cc: Anna Schumaker <anna.schumaker@netapp.com>
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/flexfilelayout/flexfilelayout.c |    3 +++
 1 file changed, 3 insertions(+)

--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -1039,6 +1039,9 @@ static int ff_layout_write_done_cb(struc
 	    hdr->res.verf->committed == NFS_DATA_SYNC)
 		ff_layout_set_layoutcommit(hdr);
 
+	if (task->tk_status >= 0)
+		nfs_writeback_update_inode(hdr);
+
 	return 0;
 }
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233463 — [PATCH 4.1 038/159] powerpc/rtas: Introduce rtas_get_sensor_fast() for IRQ handlers

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 038/159] powerpc/rtas: Introduce rtas_get_sensor_fast() for IRQ handlers
Message-ID<qd5vY-3Ss-33@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Thomas Huth <thuth@redhat.com>

commit 1c2cb594441d02815d304cccec9742ff5c707495 upstream.

The EPOW interrupt handler uses rtas_get_sensor(), which in turn
uses rtas_busy_delay() to wait for RTAS becoming ready in case it
is necessary. But rtas_busy_delay() is annotated with might_sleep()
and thus may not be used by interrupts handlers like the EPOW handler!
This leads to the following BUG when CONFIG_DEBUG_ATOMIC_SLEEP is
enabled:

 BUG: sleeping function called from invalid context at arch/powerpc/kernel/rtas.c:496
 in_atomic(): 1, irqs_disabled(): 1, pid: 0, name: swapper/1
 CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.2.0-rc2-thuth #6
 Call Trace:
 [c00000007ffe7b90] [c000000000807670] dump_stack+0xa0/0xdc (unreliable)
 [c00000007ffe7bc0] [c0000000000e1f14] ___might_sleep+0x134/0x180
 [c00000007ffe7c20] [c00000000002aec0] rtas_busy_delay+0x30/0xd0
 [c00000007ffe7c50] [c00000000002bde4] rtas_get_sensor+0x74/0xe0
 [c00000007ffe7ce0] [c000000000083264] ras_epow_interrupt+0x44/0x450
 [c00000007ffe7d90] [c000000000120260] handle_irq_event_percpu+0xa0/0x300
 [c00000007ffe7e70] [c000000000120524] handle_irq_event+0x64/0xc0
 [c00000007ffe7eb0] [c000000000124dbc] handle_fasteoi_irq+0xec/0x260
 [c00000007ffe7ef0] [c00000000011f4f0] generic_handle_irq+0x50/0x80
 [c00000007ffe7f20] [c000000000010f3c] __do_irq+0x8c/0x200
 [c00000007ffe7f90] [c0000000000236cc] call_do_irq+0x14/0x24
 [c00000007e6f39e0] [c000000000011144] do_IRQ+0x94/0x110
 [c00000007e6f3a30] [c000000000002594] hardware_interrupt_common+0x114/0x180

Fix this issue by introducing a new rtas_get_sensor_fast() function
that does not use rtas_busy_delay() - and thus can only be used for
sensors that do not cause a BUSY condition - known as "fast" sensors.

The EPOW sensor is defined to be "fast" in sPAPR - mpe.

Fixes: 587f83e8dd50 ("powerpc/pseries: Use rtas_get_sensor in RAS code")
Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/powerpc/include/asm/rtas.h      |    1 +
 arch/powerpc/kernel/rtas.c           |   17 +++++++++++++++++
 arch/powerpc/platforms/pseries/ras.c |    3 ++-
 3 files changed, 20 insertions(+), 1 deletion(-)

--- a/arch/powerpc/include/asm/rtas.h
+++ b/arch/powerpc/include/asm/rtas.h
@@ -343,6 +343,7 @@ extern void rtas_power_off(void);
 extern void rtas_halt(void);
 extern void rtas_os_term(char *str);
 extern int rtas_get_sensor(int sensor, int index, int *state);
+extern int rtas_get_sensor_fast(int sensor, int index, int *state);
 extern int rtas_get_power_level(int powerdomain, int *level);
 extern int rtas_set_power_level(int powerdomain, int level, int *setlevel);
 extern bool rtas_indicator_present(int token, int *maxindex);
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -584,6 +584,23 @@ int rtas_get_sensor(int sensor, int inde
 }
 EXPORT_SYMBOL(rtas_get_sensor);
 
+int rtas_get_sensor_fast(int sensor, int index, int *state)
+{
+	int token = rtas_token("get-sensor-state");
+	int rc;
+
+	if (token == RTAS_UNKNOWN_SERVICE)
+		return -ENOENT;
+
+	rc = rtas_call(token, 2, 2, state, sensor, index);
+	WARN_ON(rc == RTAS_BUSY || (rc >= RTAS_EXTENDED_DELAY_MIN &&
+				    rc <= RTAS_EXTENDED_DELAY_MAX));
+
+	if (rc < 0)
+		return rtas_error_rc(rc);
+	return rc;
+}
+
 bool rtas_indicator_present(int token, int *maxindex)
 {
 	int proplen, count, i;
--- a/arch/powerpc/platforms/pseries/ras.c
+++ b/arch/powerpc/platforms/pseries/ras.c
@@ -189,7 +189,8 @@ static irqreturn_t ras_epow_interrupt(in
 	int state;
 	int critical;
 
-	status = rtas_get_sensor(EPOW_SENSOR_TOKEN, EPOW_SENSOR_INDEX, &state);
+	status = rtas_get_sensor_fast(EPOW_SENSOR_TOKEN, EPOW_SENSOR_INDEX,
+				      &state);
 
 	if (state > 3)
 		critical = 1;		/* Time Critical */


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233464 — [PATCH 4.1 021/159] arm64: head.S: initialise mdcr_el2 in el2_setup

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 021/159] arm64: head.S: initialise mdcr_el2 in el2_setup
Message-ID<qd5vY-3Ss-23@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Will Deacon <will.deacon@arm.com>

commit d10bcd473301888f957ec4b6b12aa3621be78d59 upstream.

When entering the kernel at EL2, we fail to initialise the MDCR_EL2
register which controls debug access and PMU capabilities at EL1.

This patch ensures that the register is initialised so that all traps
are disabled and all the PMU counters are available to the host. When a
guest is scheduled, KVM takes care to configure trapping appropriately.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/kernel/head.S |    5 +++++
 1 file changed, 5 insertions(+)

--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
@@ -565,6 +565,11 @@ CPU_LE(	movk	x0, #0x30d0, lsl #16	)	// C
 	msr	hstr_el2, xzr			// Disable CP15 traps to EL2
 #endif
 
+	/* EL2 debug */
+	mrs	x0, pmcr_el0			// Disable debug access traps
+	ubfx	x0, x0, #11, #5			// to EL2 and allow access to
+	msr	mdcr_el2, x0			// all PMU counters from EL1
+
 	/* Stage-2 translation */
 	msr	vttbr_el2, xzr
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233465 — [PATCH 4.1 015/159] Revert "ext4: remove block_device_ejected"

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 015/159] Revert "ext4: remove block_device_ejected"
Message-ID<qd5vY-3Ss-35@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Theodore Ts'o <tytso@mit.edu>

commit bdfe0cbd746aa9b2509c2f6d6be17193cf7facd7 upstream.

This reverts commit 08439fec266c3cc5702953b4f54bdf5649357de0.

Unfortunately we still need to test for bdi->dev to avoid a crash when a
USB stick is yanked out while a file system is mounted:

   usb 2-2: USB disconnect, device number 2
   Buffer I/O error on dev sdb1, logical block 15237120, lost sync page write
   JBD2: Error -5 detected when updating journal superblock for sdb1-8.
   BUG: unable to handle kernel paging request at 34beb000
   IP: [<c136ce88>] __percpu_counter_add+0x18/0xc0
   *pdpt = 0000000023db9001 *pde = 0000000000000000
   Oops: 0000 [#1] SMP
   CPU: 0 PID: 4083 Comm: umount Tainted: G     U     OE   4.1.1-040101-generic #201507011435
   Hardware name: LENOVO 7675CTO/7675CTO, BIOS 7NETC2WW (2.22 ) 03/22/2011
   task: ebf06b50 ti: ebebc000 task.ti: ebebc000
   EIP: 0060:[<c136ce88>] EFLAGS: 00010082 CPU: 0
   EIP is at __percpu_counter_add+0x18/0xc0
   EAX: f21c8e88 EBX: f21c8e88 ECX: 00000000 EDX: 00000001
   ESI: 00000001 EDI: 00000000 EBP: ebebde60 ESP: ebebde40
    DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
   CR0: 8005003b CR2: 34beb000 CR3: 33354200 CR4: 000007f0
   Stack:
    c1abe100 edcb0098 edcb00ec ffffffff f21c8e68 ffffffff f21c8e68 f286d160
    ebebde84 c1160454 00000010 00000282 f72a77f8 00000984 f72a77f8 f286d160
    f286d170 ebebdea0 c11e613f 00000000 00000282 f72a77f8 edd7f4d0 00000000
   Call Trace:
    [<c1160454>] account_page_dirtied+0x74/0x110
    [<c11e613f>] __set_page_dirty+0x3f/0xb0
    [<c11e6203>] mark_buffer_dirty+0x53/0xc0
    [<c124a0cb>] ext4_commit_super+0x17b/0x250
    [<c124ac71>] ext4_put_super+0xc1/0x320
    [<c11f04ba>] ? fsnotify_unmount_inodes+0x1aa/0x1c0
    [<c11cfeda>] ? evict_inodes+0xca/0xe0
    [<c11b925a>] generic_shutdown_super+0x6a/0xe0
    [<c10a1df0>] ? prepare_to_wait_event+0xd0/0xd0
    [<c1165a50>] ? unregister_shrinker+0x40/0x50
    [<c11b92f6>] kill_block_super+0x26/0x70
    [<c11b94f5>] deactivate_locked_super+0x45/0x80
    [<c11ba007>] deactivate_super+0x47/0x60
    [<c11d2b39>] cleanup_mnt+0x39/0x80
    [<c11d2bc0>] __cleanup_mnt+0x10/0x20
    [<c1080b51>] task_work_run+0x91/0xd0
    [<c1011e3c>] do_notify_resume+0x7c/0x90
    [<c1720da5>] work_notify
   Code: 8b 55 e8 e9 f4 fe ff ff 90 90 90 90 90 90 90 90 90 90 90 55 89 e5 83 ec 20 89 5d f4 89 c3 89 75 f8 89 d6 89 7d fc 89 cf 8b 48 14 <64> 8b 01 89 45 ec 89 c2 8b 45 08 c1 fa 1f 01 75 ec 89 55 f0 89
   EIP: [<c136ce88>] __percpu_counter_add+0x18/0xc0 SS:ESP 0068:ebebde40
   CR2: 0000000034beb000
   ---[ end trace dd564a7bea834ecd ]---

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=101011

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/super.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -324,6 +324,22 @@ static void save_error_info(struct super
 	ext4_commit_super(sb, 1);
 }
 
+/*
+ * The del_gendisk() function uninitializes the disk-specific data
+ * structures, including the bdi structure, without telling anyone
+ * else.  Once this happens, any attempt to call mark_buffer_dirty()
+ * (for example, by ext4_commit_super), will cause a kernel OOPS.
+ * This is a kludge to prevent these oops until we can put in a proper
+ * hook in del_gendisk() to inform the VFS and file system layers.
+ */
+static int block_device_ejected(struct super_block *sb)
+{
+	struct inode *bd_inode = sb->s_bdev->bd_inode;
+	struct backing_dev_info *bdi = inode_to_bdi(bd_inode);
+
+	return bdi->dev == NULL;
+}
+
 static void ext4_journal_commit_callback(journal_t *journal, transaction_t *txn)
 {
 	struct super_block		*sb = journal->j_private;
@@ -4591,7 +4607,7 @@ static int ext4_commit_super(struct supe
 	struct buffer_head *sbh = EXT4_SB(sb)->s_sbh;
 	int error = 0;
 
-	if (!sbh)
+	if (!sbh || block_device_ejected(sb))
 		return error;
 	if (buffer_write_io_error(sbh)) {
 		/*


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233466 — [PATCH 4.1 066/159] NFSv4.1: Fix a protocol issue with CLOSE stateids

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 066/159] NFSv4.1: Fix a protocol issue with CLOSE stateids
Message-ID<qd5vY-3Ss-41@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <trond.myklebust@primarydata.com>

commit 4a1e2feb9d246775dee0f78ed5b18826bae2b1c5 upstream.

According to RFC5661 Section 18.2.4, CLOSE is supposed to return
the zero stateid. This means that nfs_clear_open_stateid_locked()
cannot assume that the result stateid will always match the 'other'
field of the existing open stateid when trying to determine a race
with a parallel OPEN.

Instead, we look at the argument, and check for matches.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/nfs4proc.c |   15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1216,6 +1216,7 @@ static void nfs_resync_open_stateid_lock
 }
 
 static void nfs_clear_open_stateid_locked(struct nfs4_state *state,
+		nfs4_stateid *arg_stateid,
 		nfs4_stateid *stateid, fmode_t fmode)
 {
 	clear_bit(NFS_O_RDWR_STATE, &state->flags);
@@ -1234,8 +1235,9 @@ static void nfs_clear_open_stateid_locke
 	if (stateid == NULL)
 		return;
 	/* Handle races with OPEN */
-	if (!nfs4_stateid_match_other(stateid, &state->open_stateid) ||
-	    !nfs4_stateid_is_newer(stateid, &state->open_stateid)) {
+	if (!nfs4_stateid_match_other(arg_stateid, &state->open_stateid) ||
+	    (nfs4_stateid_match_other(stateid, &state->open_stateid) &&
+	    !nfs4_stateid_is_newer(stateid, &state->open_stateid))) {
 		nfs_resync_open_stateid_locked(state);
 		return;
 	}
@@ -1244,10 +1246,12 @@ static void nfs_clear_open_stateid_locke
 	nfs4_stateid_copy(&state->open_stateid, stateid);
 }
 
-static void nfs_clear_open_stateid(struct nfs4_state *state, nfs4_stateid *stateid, fmode_t fmode)
+static void nfs_clear_open_stateid(struct nfs4_state *state,
+	nfs4_stateid *arg_stateid,
+	nfs4_stateid *stateid, fmode_t fmode)
 {
 	write_seqlock(&state->seqlock);
-	nfs_clear_open_stateid_locked(state, stateid, fmode);
+	nfs_clear_open_stateid_locked(state, arg_stateid, stateid, fmode);
 	write_sequnlock(&state->seqlock);
 	if (test_bit(NFS_STATE_RECLAIM_NOGRACE, &state->flags))
 		nfs4_schedule_state_manager(state->owner->so_server->nfs_client);
@@ -2672,7 +2676,8 @@ static void nfs4_close_done(struct rpc_t
 				goto out_release;
 			}
 	}
-	nfs_clear_open_stateid(state, res_stateid, calldata->arg.fmode);
+	nfs_clear_open_stateid(state, &calldata->arg.stateid,
+			res_stateid, calldata->arg.fmode);
 out_release:
 	nfs_release_seqid(calldata->arg.seqid);
 	nfs_refresh_inode(calldata->inode, calldata->res.fattr);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233467 — [PATCH 4.1 031/159] ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop.

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 031/159] ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop.
Message-ID<qd5vY-3Ss-43@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Woodrow Shen <woodrow.shen@canonical.com>

commit 1adecc6755e1e4193b5618ddb2e107f6d6e88f4b upstream.

Dell laptop has a series model to use the same codec but different subsystem ID.
At the same time they happens the white noise by login screen and headphone;
for fixing them together, I only can add these IDs to FIXUP function ALC292_FIXUP_DISABLE_AAMIX,
then try to solve such the similar issues.

Codec: Realtek ALC3235
Vendor Id: 0x10ec0293
Subsystem Id: 0x102806dd
Subsystem Id: 0x102806df
Subsystem Id: 0x102806e0

BugLink: https://bugs.launchpad.net/bugs/1492132
Signed-off-by: Woodrow Shen <woodrow.shen@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/pci/hda/patch_realtek.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -5118,8 +5118,11 @@ static const struct snd_pci_quirk alc269
 	SND_PCI_QUIRK(0x1028, 0x06c7, "Dell", ALC255_FIXUP_DELL1_MIC_NO_PRESENCE),
 	SND_PCI_QUIRK(0x1028, 0x06d9, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
 	SND_PCI_QUIRK(0x1028, 0x06da, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
-	SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
 	SND_PCI_QUIRK(0x1028, 0x06db, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+	SND_PCI_QUIRK(0x1028, 0x06dd, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+	SND_PCI_QUIRK(0x1028, 0x06de, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+	SND_PCI_QUIRK(0x1028, 0x06df, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
+	SND_PCI_QUIRK(0x1028, 0x06e0, "Dell", ALC292_FIXUP_DISABLE_AAMIX),
 	SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
 	SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE),
 	SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2),


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233468 — [PATCH 4.1 029/159] ALSA: hda - Enable headphone jack detect on old Fujitsu laptops

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 029/159] ALSA: hda - Enable headphone jack detect on old Fujitsu laptops
Message-ID<qd5vY-3Ss-47@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Takashi Iwai <tiwai@suse.de>

commit bb148bdeb0ab16fc0ae8009799471e4d7180073b upstream.

According to the bug report, FSC Amilo laptops with ALC880 can detect
the headphone jack but currently the driver disables it.  It's partly
intentionally, as non-working jack detect was reported in the past.
Let's enable now.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=102501
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 sound/pci/hda/patch_realtek.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -1134,7 +1134,7 @@ static const struct hda_fixup alc880_fix
 		/* override all pins as BIOS on old Amilo is broken */
 		.type = HDA_FIXUP_PINS,
 		.v.pins = (const struct hda_pintbl[]) {
-			{ 0x14, 0x0121411f }, /* HP */
+			{ 0x14, 0x0121401f }, /* HP */
 			{ 0x15, 0x99030120 }, /* speaker */
 			{ 0x16, 0x99030130 }, /* bass speaker */
 			{ 0x17, 0x411111f0 }, /* N/A */
@@ -1154,7 +1154,7 @@ static const struct hda_fixup alc880_fix
 		/* almost compatible with FUJITSU, but no bass and SPDIF */
 		.type = HDA_FIXUP_PINS,
 		.v.pins = (const struct hda_pintbl[]) {
-			{ 0x14, 0x0121411f }, /* HP */
+			{ 0x14, 0x0121401f }, /* HP */
 			{ 0x15, 0x99030120 }, /* speaker */
 			{ 0x16, 0x411111f0 }, /* N/A */
 			{ 0x17, 0x411111f0 }, /* N/A */


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233469 — [PATCH 4.1 065/159] NFSv4.1/flexfiles: Fix a protocol error in layoutreturn

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 065/159] NFSv4.1/flexfiles: Fix a protocol error in layoutreturn
Message-ID<qd5vZ-3Ss-53@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <trond.myklebust@primarydata.com>

commit d13549074cf066d6d5bb29903d044beffea342d3 upstream.

According to the flexfiles protocol, the layoutreturn should specify an
array of errors in the following format:

struct ff_ioerr4 {
	offset4        ffie_offset;
	length4        ffie_length;
	stateid4       ffie_stateid;
	device_error4  ffie_errors<>;
};

This patch fixes up the code to ensure that our ffie_errors is indeed
encoded as an array (albeit with only a single entry).

Reported-by: Tom Haynes <thomas.haynes@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/flexfilelayout/flexfilelayoutdev.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

--- a/fs/nfs/flexfilelayout/flexfilelayoutdev.c
+++ b/fs/nfs/flexfilelayout/flexfilelayoutdev.c
@@ -500,16 +500,19 @@ int ff_layout_encode_ds_ioerr(struct nfs
 					   range->offset, range->length))
 			continue;
 		/* offset(8) + length(8) + stateid(NFS4_STATEID_SIZE)
-		 * + deviceid(NFS4_DEVICEID4_SIZE) + status(4) + opnum(4)
+		 * + array length + deviceid(NFS4_DEVICEID4_SIZE)
+		 * + status(4) + opnum(4)
 		 */
 		p = xdr_reserve_space(xdr,
-				24 + NFS4_STATEID_SIZE + NFS4_DEVICEID4_SIZE);
+				28 + NFS4_STATEID_SIZE + NFS4_DEVICEID4_SIZE);
 		if (unlikely(!p))
 			return -ENOBUFS;
 		p = xdr_encode_hyper(p, err->offset);
 		p = xdr_encode_hyper(p, err->length);
 		p = xdr_encode_opaque_fixed(p, &err->stateid,
 					    NFS4_STATEID_SIZE);
+		/* Encode 1 error */
+		*p++ = cpu_to_be32(1);
 		p = xdr_encode_opaque_fixed(p, &err->deviceid,
 					    NFS4_DEVICEID4_SIZE);
 		*p++ = cpu_to_be32(err->status);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233470 — [PATCH 4.1 020/159] arm64: compat: fix vfp save/restore across signal handlers in big-endian

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 020/159] arm64: compat: fix vfp save/restore across signal handlers in big-endian
Message-ID<qd5vZ-3Ss-49@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Will Deacon <will.deacon@arm.com>

commit bdec97a855ef1e239f130f7a11584721c9a1bf04 upstream.

When saving/restoring the VFP registers from a compat (AArch32)
signal frame, we rely on the compat registers forming a prefix of the
native register file and therefore make use of copy_{to,from}_user to
transfer between the native fpsimd_state and the compat_vfp_sigframe.

Unfortunately, this doesn't work so well in a big-endian environment.
Our fpsimd save/restore code operates directly on 128-bit quantities
(Q registers) whereas the compat_vfp_sigframe represents the registers
as an array of 64-bit (D) registers. The architecture packs the compat D
registers into the Q registers, with the least significant bytes holding
the lower register. Consequently, we need to swap the 64-bit halves when
converting between these two representations on a big-endian machine.

This patch replaces the __copy_{to,from}_user invocations in our
compat VFP signal handling code with explicit __put_user loops that
operate on 64-bit values and swap them accordingly.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/arm64/kernel/signal32.c |   47 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 36 insertions(+), 11 deletions(-)

--- a/arch/arm64/kernel/signal32.c
+++ b/arch/arm64/kernel/signal32.c
@@ -212,14 +212,32 @@ int copy_siginfo_from_user32(siginfo_t *
 
 /*
  * VFP save/restore code.
+ *
+ * We have to be careful with endianness, since the fpsimd context-switch
+ * code operates on 128-bit (Q) register values whereas the compat ABI
+ * uses an array of 64-bit (D) registers. Consequently, we need to swap
+ * the two halves of each Q register when running on a big-endian CPU.
  */
+union __fpsimd_vreg {
+	__uint128_t	raw;
+	struct {
+#ifdef __AARCH64EB__
+		u64	hi;
+		u64	lo;
+#else
+		u64	lo;
+		u64	hi;
+#endif
+	};
+};
+
 static int compat_preserve_vfp_context(struct compat_vfp_sigframe __user *frame)
 {
 	struct fpsimd_state *fpsimd = &current->thread.fpsimd_state;
 	compat_ulong_t magic = VFP_MAGIC;
 	compat_ulong_t size = VFP_STORAGE_SIZE;
 	compat_ulong_t fpscr, fpexc;
-	int err = 0;
+	int i, err = 0;
 
 	/*
 	 * Save the hardware registers to the fpsimd_state structure.
@@ -235,10 +253,15 @@ static int compat_preserve_vfp_context(s
 	/*
 	 * Now copy the FP registers. Since the registers are packed,
 	 * we can copy the prefix we want (V0-V15) as it is.
-	 * FIXME: Won't work if big endian.
 	 */
-	err |= __copy_to_user(&frame->ufp.fpregs, fpsimd->vregs,
-			      sizeof(frame->ufp.fpregs));
+	for (i = 0; i < ARRAY_SIZE(frame->ufp.fpregs); i += 2) {
+		union __fpsimd_vreg vreg = {
+			.raw = fpsimd->vregs[i >> 1],
+		};
+
+		__put_user_error(vreg.lo, &frame->ufp.fpregs[i], err);
+		__put_user_error(vreg.hi, &frame->ufp.fpregs[i + 1], err);
+	}
 
 	/* Create an AArch32 fpscr from the fpsr and the fpcr. */
 	fpscr = (fpsimd->fpsr & VFP_FPSCR_STAT_MASK) |
@@ -263,7 +286,7 @@ static int compat_restore_vfp_context(st
 	compat_ulong_t magic = VFP_MAGIC;
 	compat_ulong_t size = VFP_STORAGE_SIZE;
 	compat_ulong_t fpscr;
-	int err = 0;
+	int i, err = 0;
 
 	__get_user_error(magic, &frame->magic, err);
 	__get_user_error(size, &frame->size, err);
@@ -273,12 +296,14 @@ static int compat_restore_vfp_context(st
 	if (magic != VFP_MAGIC || size != VFP_STORAGE_SIZE)
 		return -EINVAL;
 
-	/*
-	 * Copy the FP registers into the start of the fpsimd_state.
-	 * FIXME: Won't work if big endian.
-	 */
-	err |= __copy_from_user(fpsimd.vregs, frame->ufp.fpregs,
-				sizeof(frame->ufp.fpregs));
+	/* Copy the FP registers into the start of the fpsimd_state. */
+	for (i = 0; i < ARRAY_SIZE(frame->ufp.fpregs); i += 2) {
+		union __fpsimd_vreg vreg;
+
+		__get_user_error(vreg.lo, &frame->ufp.fpregs[i], err);
+		__get_user_error(vreg.hi, &frame->ufp.fpregs[i + 1], err);
+		fpsimd.vregs[i >> 1] = vreg.raw;
+	}
 
 	/* Extract the fpsr and the fpcr from the fpscr */
 	__get_user_error(fpscr, &frame->ufp.fpscr, err);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233471 — [PATCH 4.1 064/159] NFS41/flexfiles: zero out DS write wcc

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 064/159] NFS41/flexfiles: zero out DS write wcc
Message-ID<qd5vZ-3Ss-55@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Peng Tao <tao.peng@primarydata.com>

commit 5420401079e152ff68a8024f6a375804b1c21505 upstream.

We do not want to update inode attributes with DS values.

Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/flexfilelayout/flexfilelayout.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -1039,6 +1039,8 @@ static int ff_layout_write_done_cb(struc
 	    hdr->res.verf->committed == NFS_DATA_SYNC)
 		ff_layout_set_layoutcommit(hdr);
 
+	/* zero out fattr since we don't care DS attr at all */
+	hdr->fattr.valid = 0;
 	if (task->tk_status >= 0)
 		nfs_writeback_update_inode(hdr);
 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233472 — [PATCH 4.1 039/159] powerpc: Uncomment and make enable_kernel_vsx() routine available

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 039/159] powerpc: Uncomment and make enable_kernel_vsx() routine available
Message-ID<qd5vZ-3Ss-59@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Leonidas Da Silva Barbosa <leosilva@linux.vnet.ibm.com>

commit 72cd7b44bc99376b3f3c93cedcd052663fcdf705 upstream.

enable_kernel_vsx() function was commented since anything was using
it. However, vmx-crypto driver uses VSX instructions which are
only available if VSX is enable. Otherwise it rises an exception oops.

This patch uncomment enable_kernel_vsx() routine and makes it available.

Signed-off-by: Leonidas S. Barbosa <leosilva@linux.vnet.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 arch/powerpc/include/asm/switch_to.h |    1 +
 arch/powerpc/kernel/process.c        |    3 ---
 2 files changed, 1 insertion(+), 3 deletions(-)

--- a/arch/powerpc/include/asm/switch_to.h
+++ b/arch/powerpc/include/asm/switch_to.h
@@ -29,6 +29,7 @@ static inline void save_early_sprs(struc
 
 extern void enable_kernel_fp(void);
 extern void enable_kernel_altivec(void);
+extern void enable_kernel_vsx(void);
 extern int emulate_altivec(struct pt_regs *);
 extern void __giveup_vsx(struct task_struct *);
 extern void giveup_vsx(struct task_struct *);
--- a/arch/powerpc/kernel/process.c
+++ b/arch/powerpc/kernel/process.c
@@ -204,8 +204,6 @@ EXPORT_SYMBOL_GPL(flush_altivec_to_threa
 #endif /* CONFIG_ALTIVEC */
 
 #ifdef CONFIG_VSX
-#if 0
-/* not currently used, but some crazy RAID module might want to later */
 void enable_kernel_vsx(void)
 {
 	WARN_ON(preemptible());
@@ -220,7 +218,6 @@ void enable_kernel_vsx(void)
 #endif /* CONFIG_SMP */
 }
 EXPORT_SYMBOL(enable_kernel_vsx);
-#endif
 
 void giveup_vsx(struct task_struct *tsk)
 {


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1233474 — [PATCH 4.1 067/159] Revert "NFSv4: Remove incorrect check in can_open_delegated()"

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2015-09-26 23:50 +0200
Subject[PATCH 4.1 067/159] Revert "NFSv4: Remove incorrect check in can_open_delegated()"
Message-ID<qd5vZ-3Ss-63@gated-at.bofh.it>
In reply to#1233453
4.1-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Trond Myklebust <trond.myklebust@primarydata.com>

commit 36319608e28701c07cad80ae3be8b0fdfb1ab40f upstream.

This reverts commit 4e379d36c050b0117b5d10048be63a44f5036115.

This commit opens up a race between the recovery code and the open code.

Reported-by: Olga Kornievskaia <aglo@umich.edu>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/nfs/nfs4proc.c |    2 ++
 1 file changed, 2 insertions(+)

--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -1152,6 +1152,8 @@ static int can_open_delegated(struct nfs
 		return 0;
 	if ((delegation->type & fmode) != fmode)
 		return 0;
+	if (test_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags))
+		return 0;
 	if (test_bit(NFS_DELEGATION_RETURNING, &delegation->flags))
 		return 0;
 	nfs_mark_delegation_referenced(delegation);


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


Page 1 of 3  [1] 2 3  Next page →

Back to top | Article view | linux.kernel


csiph-web