17 May, 2017

1 commit

  • Pull s390 fixes from Martin Schwidefsky:

    - convert the debug feature to refcount_t

    - reduce the copy size for strncpy_from_user

    - 8 bug fixes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/virtio: change virtio_feature_desc:features type to __le32
    s390: convert debug_info.ref_count from atomic_t to refcount_t
    s390: move _text symbol to address higher than zero
    s390/qdio: increase string buffer size
    s390/ccwgroup: increase string buffer size
    s390/topology: let topology_mnest_limit() return unsigned char
    s390/uaccess: use sane length for __strncpy_from_user()
    s390/uprobes: fix compile for !KPROBES
    s390/ftrace: fix compile for !MODULES
    s390/cputime: fix incorrect system time

    Linus Torvalds
     

16 May, 2017

1 commit

  • Pull networking fixes from David Miller:

    1) Track alignment in BPF verifier so that legitimate programs won't be
    rejected on !CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS architectures.

    2) Make tail calls work properly in arm64 BPF JIT, from Deniel
    Borkmann.

    3) Make the configuration and semantics Generic XDP make more sense and
    don't allow both generic XDP and a driver specific instance to be
    active at the same time. Also from Daniel.

    4) Don't crash on resume in xen-netfront, from Vitaly Kuznetsov.

    5) Fix use-after-free in VRF driver, from Gao Feng.

    6) Use netdev_alloc_skb_ip_align() to avoid unaligned IP headers in
    qca_spi driver, from Stefan Wahren.

    7) Always run cleanup routines in BPF samples when we get SIGTERM, from
    Andy Gospodarek.

    8) The mdio phy code should bring PHYs out of reset using the shared
    GPIO lines before invoking bus->reset(). From Florian Fainelli.

    9) Some USB descriptor access endian fixes in various drivers from
    Johan Hovold.

    10) Handle PAUSE advertisements properly in mlx5 driver, from Gal
    Pressman.

    11) Fix reversed test in mlx5e_setup_tc(), from Saeed Mahameed.

    12) Cure netdev leak in AF_PACKET when using timestamping via control
    messages. From Douglas Caetano dos Santos.

    13) netcp doesn't support HWTSTAMP_FILTER_ALl, reject it. From Miroslav
    Lichvar.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (52 commits)
    ldmvsw: stop the clean timer at beginning of remove
    ldmvsw: unregistering netdev before disable hardware
    net: netcp: fix check of requested timestamping filter
    ipv6: avoid dad-failures for addresses with NODAD
    qed: Fix uninitialized data in aRFS infrastructure
    mdio: mux: fix device_node_continue.cocci warnings
    net/packet: fix missing net_device reference release
    net/mlx4_core: Use min3 to select number of MSI-X vectors
    macvlan: Fix performance issues with vlan tagged packets
    net: stmmac: use correct pointer when printing normal descriptor ring
    net/mlx5: Use underlay QPN from the root name space
    net/mlx5e: IPoIB, Only support regular RQ for now
    net/mlx5e: Fix setup TC ndo
    net/mlx5e: Fix ethtool pause support and advertise reporting
    net/mlx5e: Use the correct pause values for ethtool advertising
    vmxnet3: ensure that adapter is in proper state during force_close
    sfc: revert changes to NIC revision numbers
    net: ch9200: add missing USB-descriptor endianness conversions
    net: irda: irda-usb: fix firmware name on big-endian hosts
    net: dsa: mv88e6xxx: add default case to switch
    ...

    Linus Torvalds
     

15 May, 2017

1 commit

  • The feature member of virtio_feature_desc contains little endian
    values, given that it contents will be converted with
    le32_to_cpu(). The "wrong" __u32 type leads to the sparse warnings
    below.
    In order to avoid them, use the correct __le32 type instead.

    drivers/s390/virtio/virtio_ccw.c:749:14: warning: cast to restricted __le32
    drivers/s390/virtio/virtio_ccw.c:762:28: warning: cast to restricted __le32

    Acked-by: Halil Pasic
    Acked-by: Cornelia Huck
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

12 May, 2017

4 commits

  • commit 5f78e29ceebf ("qeth: optimize IP handling in rx_mode callback")
    added new hash tables, but missed to initialize them.

    Fixes: 5f78e29ceebf ("qeth: optimize IP handling in rx_mode callback")
    Signed-off-by: Ursula Braun
    Reviewed-by: Julian Wiedmann
    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Ursula Braun
     
  • Access card->dev only after checking whether's its valid.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Ursula Braun
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • commit b4d72c08b358 ("qeth: bridgeport support - basic control")
    broke the support for OSM and OSN devices as follows:

    As OSM and OSN are L2 only, qeth_core_probe_device() does an early
    setup by loading the l2 discipline and calling qeth_l2_probe_device().
    In this context, adding the l2-specific bridgeport sysfs attributes
    via qeth_l2_create_device_attributes() hits a BUG_ON in fs/sysfs/group.c,
    since the basic sysfs infrastructure for the device hasn't been
    established yet.

    Note that OSN actually has its own unique sysfs attributes
    (qeth_osn_devtype), so the additional attributes shouldn't be created
    at all.
    For OSM, add a new qeth_l2_devtype that contains all the common
    and l2-specific sysfs attributes.
    When qeth_core_probe_device() does early setup for OSM or OSN, assign
    the corresponding devtype so that the ccwgroup probe code creates the
    full set of sysfs attributes.
    This allows us to skip qeth_l2_create_device_attributes() in case
    of an early setup.

    Any device that can't do early setup will initially have only the
    generic sysfs attributes, and when it's probed later
    qeth_l2_probe_device() adds the l2-specific attributes.

    If an early-setup device is removed (by calling ccwgroup_ungroup()),
    device_unregister() will - using the devtype - delete the
    l2-specific attributes before qeth_l2_remove_device() is called.
    So make sure to not remove them twice.

    What complicates the issue is that qeth_l2_probe_device() and
    qeth_l2_remove_device() is also called on a device when its
    layer2 attribute changes (ie. its layer mode is switched).
    For early-setup devices this wouldn't work properly - we wouldn't
    remove the l2-specific attributes when switching to L3.
    But switching the layer mode doesn't actually make any sense;
    we already decided that the device can only operate in L2!
    So just refuse to switch the layer mode on such devices. Note that
    OSN doesn't have a layer2 attribute, so we only need to special-case
    OSM.

    Based on an initial patch by Ursula Braun.

    Fixes: b4d72c08b358 ("qeth: bridgeport support - basic control")
    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • When setting up the device from within the layer discipline's
    probe routine, creating the layer-specific sysfs attributes can fail.
    Report this error back to the caller, and handle it by
    releasing the layer discipline.

    Signed-off-by: Ursula Braun
    [jwi: updated commit msg, moved an OSN change to a subsequent patch]
    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Ursula Braun
     

11 May, 2017

1 commit

  • Pull virtio updates from Michael Tsirkin:
    "Fixes, cleanups, performance

    A bunch of changes to virtio, most affecting virtio net. Also ptr_ring
    batched zeroing - first of batching enhancements that seems ready."

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    s390/virtio: change maintainership
    tools/virtio: fix spelling mistake: "wakeus" -> "wakeups"
    virtio_net: tidy a couple debug statements
    ptr_ring: support testing different batching sizes
    ringtest: support test specific parameters
    ptr_ring: batch ring zeroing
    virtio: virtio_driver doc
    virtio_net: don't reset twice on XDP on/off
    virtio_net: fix support for small rings
    virtio_net: reduce alignment for buffers
    virtio_net: rework mergeable buffer handling
    virtio_net: allow specifying context for rx
    virtio: allow extra context per descriptor
    tools/virtio: fix build breakage
    virtio: add context flag to find vqs
    virtio: wrap find_vqs
    ringtest: fix an assert statement

    Linus Torvalds
     

09 May, 2017

3 commits

  • Avoid false positive warnings like this with gcc 7.1:

    drivers/s390/cio/qdio_debug.h:63:4:
    note: 'snprintf' output between 8 and 17 bytes into a destination of size 16
    snprintf(debug_buffer, QDIO_DBF_LEN, text);

    and simply increase the size of the string buffer.

    Reviewed-by: Sebastian Ott
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Avoid false positive warnings like this with gcc 7.1:

    drivers/s390/cio/ccwgroup.c:41:21:
    warning: '%d' directive writing between 1 and 10 bytes into a region of size 4
    sprintf(str, "cdev%d", i);

    and simply increase the size of the string buffer.

    Reviewed-by: Sebastian Ott
    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Pull KVM updates from Paolo Bonzini:
    "ARM:
    - HYP mode stub supports kexec/kdump on 32-bit
    - improved PMU support
    - virtual interrupt controller performance improvements
    - support for userspace virtual interrupt controller (slower, but
    necessary for KVM on the weird Broadcom SoCs used by the Raspberry
    Pi 3)

    MIPS:
    - basic support for hardware virtualization (ImgTec P5600/P6600/I6400
    and Cavium Octeon III)

    PPC:
    - in-kernel acceleration for VFIO

    s390:
    - support for guests without storage keys
    - adapter interruption suppression

    x86:
    - usual range of nVMX improvements, notably nested EPT support for
    accessed and dirty bits
    - emulation of CPL3 CPUID faulting

    generic:
    - first part of VCPU thread request API
    - kvm_stat improvements"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (227 commits)
    kvm: nVMX: Don't validate disabled secondary controls
    KVM: put back #ifndef CONFIG_S390 around kvm_vcpu_kick
    Revert "KVM: Support vCPU-based gfn->hva cache"
    tools/kvm: fix top level makefile
    KVM: x86: don't hold kvm->lock in KVM_SET_GSI_ROUTING
    KVM: Documentation: remove VM mmap documentation
    kvm: nVMX: Remove superfluous VMX instruction fault checks
    KVM: x86: fix emulation of RSM and IRET instructions
    KVM: mark requests that need synchronization
    KVM: return if kvm_vcpu_wake_up() did wake up the VCPU
    KVM: add explicit barrier to kvm_vcpu_kick
    KVM: perform a wake_up in kvm_make_all_cpus_request
    KVM: mark requests that do not need a wakeup
    KVM: remove #ifndef CONFIG_S390 around kvm_vcpu_wake_up
    KVM: x86: always use kvm_make_request instead of set_bit
    KVM: add kvm_{test,clear}_request to replace {test,clear}_bit
    s390: kvm: Cpu model support for msa6, msa7 and msa8
    KVM: x86: remove irq disablement around KVM_SET_CLOCK/KVM_GET_CLOCK
    kvm: better MWAIT emulation for guests
    KVM: x86: virtualize cpuid faulting
    ...

    Linus Torvalds
     

06 May, 2017

1 commit

  • Pull libnvdimm updates from Dan Williams:
    "The bulk of this has been in multiple -next releases. There were a few
    late breaking fixes and small features that got added in the last
    couple days, but the whole set has received a build success
    notification from the kbuild robot.

    Change summary:

    - Region media error reporting: A libnvdimm region device is the
    parent to one or more namespaces. To date, media errors have been
    reported via the "badblocks" attribute attached to pmem block
    devices for namespaces in "raw" or "memory" mode. Given that
    namespaces can be in "device-dax" or "btt-sector" mode this new
    interface reports media errors generically, i.e. independent of
    namespace modes or state.

    This subsequently allows userspace tooling to craft "ACPI 6.1
    Section 9.20.7.6 Function Index 4 - Clear Uncorrectable Error"
    requests and submit them via the ioctl path for NVDIMM root bus
    devices.

    - Introduce 'struct dax_device' and 'struct dax_operations': Prompted
    by a request from Linus and feedback from Christoph this allows for
    dax capable drivers to publish their own custom dax operations.
    This fixes the broken assumption that all dax operations are
    related to a persistent memory device, and makes it easier for
    other architectures and platforms to add customized persistent
    memory support.

    - 'libnvdimm' core updates: A new "deep_flush" sysfs attribute is
    available for storage appliance applications to manually trigger
    memory controllers to drain write-pending buffers that would
    otherwise be flushed automatically by the platform ADR
    (asynchronous-DRAM-refresh) mechanism at a power loss event.
    Support for "locked" DIMMs is included to prevent namespaces from
    surfacing when the namespace label data area is locked. Finally,
    fixes for various reported deadlocks and crashes, also tagged for
    -stable.

    - ACPI / nfit driver updates: General updates of the nfit driver to
    add DSM command overrides, ACPI 6.1 health state flags support, DSM
    payload debug available by default, and various fixes.

    Acknowledgements that came after the branch was pushed:

    - commmit 565851c972b5 "device-dax: fix sysfs attribute deadlock":
    Tested-by: Yi Zhang

    - commit 23f498448362 "libnvdimm: rework region badblocks clearing"
    Tested-by: Toshi Kani "

    * tag 'libnvdimm-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (52 commits)
    libnvdimm, pfn: fix 'npfns' vs section alignment
    libnvdimm: handle locked label storage areas
    libnvdimm: convert NDD_ flags to use bitops, introduce NDD_LOCKED
    brd: fix uninitialized use of brd->dax_dev
    block, dax: use correct format string in bdev_dax_supported
    device-dax: fix sysfs attribute deadlock
    libnvdimm: restore "libnvdimm: band aid btt vs clear poison locking"
    libnvdimm: fix nvdimm_bus_lock() vs device_lock() ordering
    libnvdimm: rework region badblocks clearing
    acpi, nfit: kill ACPI_NFIT_DEBUG
    libnvdimm: fix clear length of nvdimm_forget_poison()
    libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
    libnvdimm, region: sysfs trigger for nvdimm_flush()
    libnvdimm: fix phys_addr for nvdimm_clear_poison
    x86, dax, pmem: remove indirection around memcpy_from_pmem()
    block: remove block_device_operations ->direct_access()
    block, dax: convert bdev_dax_supported() to dax_direct_access()
    filesystem-dax: convert to dax_direct_access()
    Revert "block: use DAX for partition table reads"
    ext2, ext4, xfs: retrieve dax_device for iomap operations
    ...

    Linus Torvalds
     

03 May, 2017

3 commits

  • Pull networking updates from David Millar:
    "Here are some highlights from the 2065 networking commits that
    happened this development cycle:

    1) XDP support for IXGBE (John Fastabend) and thunderx (Sunil Kowuri)

    2) Add a generic XDP driver, so that anyone can test XDP even if they
    lack a networking device whose driver has explicit XDP support
    (me).

    3) Sparc64 now has an eBPF JIT too (me)

    4) Add a BPF program testing framework via BPF_PROG_TEST_RUN (Alexei
    Starovoitov)

    5) Make netfitler network namespace teardown less expensive (Florian
    Westphal)

    6) Add symmetric hashing support to nft_hash (Laura Garcia Liebana)

    7) Implement NAPI and GRO in netvsc driver (Stephen Hemminger)

    8) Support TC flower offload statistics in mlxsw (Arkadi Sharshevsky)

    9) Multiqueue support in stmmac driver (Joao Pinto)

    10) Remove TCP timewait recycling, it never really could possibly work
    well in the real world and timestamp randomization really zaps any
    hint of usability this feature had (Soheil Hassas Yeganeh)

    11) Support level3 vs level4 ECMP route hashing in ipv4 (Nikolay
    Aleksandrov)

    12) Add socket busy poll support to epoll (Sridhar Samudrala)

    13) Netlink extended ACK support (Johannes Berg, Pablo Neira Ayuso,
    and several others)

    14) IPSEC hw offload infrastructure (Steffen Klassert)"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2065 commits)
    tipc: refactor function tipc_sk_recv_stream()
    tipc: refactor function tipc_sk_recvmsg()
    net: thunderx: Optimize page recycling for XDP
    net: thunderx: Support for XDP header adjustment
    net: thunderx: Add support for XDP_TX
    net: thunderx: Add support for XDP_DROP
    net: thunderx: Add basic XDP support
    net: thunderx: Cleanup receive buffer allocation
    net: thunderx: Optimize CQE_TX handling
    net: thunderx: Optimize RBDR descriptor handling
    net: thunderx: Support for page recycling
    ipx: call ipxitf_put() in ioctl error path
    net: sched: add helpers to handle extended actions
    qed*: Fix issues in the ptp filter config implementation.
    qede: Fix concurrency issue in PTP Tx path processing.
    stmmac: Add support for SIMATIC IOT2000 platform
    net: hns: fix ethtool_get_strings overflow in hns driver
    tcp: fix wraparound issue in tcp_lp
    bpf, arm64: fix jit branch offset related to ldimm64
    bpf, arm64: implement jiting of BPF_XADD
    ...

    Linus Torvalds
     
  • Allows maintaining extra context per vq. For ease of use, passing in
    NULL is legal and disables the feature for all vqs.

    Includes fixes by Christian for s390, acked by Cornelia.

    Signed-off-by: Christian Borntraeger
    Acked-by: Cornelia Huck
    Signed-off-by: Michael S. Tsirkin

    Michael S. Tsirkin
     
  • Pull s390 updates from Martin Schwidefsky:

    - three merges for KVM/s390 with changes for vfio-ccw and cpacf. The
    patches are included in the KVM tree as well, let git sort it out.

    - add the new 'trng' random number generator

    - provide the secure key verification API for the pkey interface

    - introduce the z13 cpu counters to perf

    - add a new system call to set up the guarded storage facility

    - simplify TASK_SIZE and arch_get_unmapped_area

    - export the raw STSI data related to CPU topology to user space

    - ... and the usual churn of bug-fixes and cleanups.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (74 commits)
    s390/crypt: use the correct module alias for paes_s390.
    s390/cpacf: Introduce kma instruction
    s390/cpacf: query instructions use unique parameters for compatibility with KMA
    s390/trng: Introduce s390 TRNG device driver.
    s390/crypto: Provide s390 specific arch random functionality.
    s390/crypto: Add new subfunctions to the cpacf PRNO function.
    s390/crypto: Renaming PPNO to PRNO.
    s390/pageattr: avoid unnecessary page table splitting
    s390/mm: simplify arch_get_unmapped_area[_topdown]
    s390/mm: make TASK_SIZE independent from the number of page table levels
    s390/gs: add regset for the guarded storage broadcast control block
    s390/kvm: Add use_cmma field to mm_context_t
    s390/kvm: Add PGSTE manipulation functions
    vfio: ccw: improve error handling for vfio_ccw_mdev_remove
    vfio: ccw: remove unnecessary NULL checks of a pointer
    s390/spinlock: remove compare and delay instruction
    s390/spinlock: use atomic primitives for spinlocks
    s390/cpumf: simplify detection of guest samples
    s390/pci: remove forward declaration
    s390/pci: increase the PCI_NR_FUNCTIONS default
    ...

    Linus Torvalds
     

26 Apr, 2017

1 commit


24 Apr, 2017

1 commit


21 Apr, 2017

1 commit

  • Let's detect the keyless subset facility.

    Signed-off-by: Farhan Ali
    Reviewed-by: Cornelia Huck
    Reviewed-by: Christian Borntraeger
    Acked-by: Martin Schwidefsky
    Signed-off-by: Christian Borntraeger

    Farhan Ali
     

20 Apr, 2017

1 commit

  • Setup a dax_dev to have the same lifetime as the dcssblk block device
    and add a ->direct_access() method that is equivalent to
    dcssblk_direct_access(). Once fs/dax.c has been converted to use
    dax_operations the old dcssblk_direct_access() will be removed.

    Reported-by: Gerald Schaefer
    Acked-by: Gerald Schaefer
    Signed-off-by: Dan Williams

    Dan Williams
     

12 Apr, 2017

12 commits


07 Apr, 2017

7 commits


06 Apr, 2017

1 commit

  • Pull networking fixes from David Miller:

    1) Reject invalid updates to netfilter expectation policies, from Pablo
    Neira Ayuso.

    2) Fix memory leak in nfnl_cthelper, from Jeffy Chen.

    3) Don't do stupid things if we get a neigh_probe() on a neigh entry
    whose ops lack a solicit method. From Eric Dumazet.

    4) Don't transmit packets in r8152 driver when the carrier is off, from
    Hayes Wang.

    5) Fix ipv6 packet type detection in aquantia driver, from Pavel
    Belous.

    6) Don't write uninitialized data into hw registers in bna driver, from
    Arnd Bergmann.

    7) Fix locking in ping_unhash(), from Eric Dumazet.

    8) Make BPF verifier range checks able to understand certain sequences
    emitted by LLVM, from Alexei Starovoitov.

    9) Fix use after free in ipconfig, from Mark Rutland.

    10) Fix refcount leak on force commit in openvswitch, from Jarno
    Rajahalme.

    11) Fix various overflow checks in AF_PACKET, from Andrey Konovalov.

    12) Fix endianness bug in be2net driver, from Suresh Reddy.

    13) Don't forget to wake TX queues when processing a timeout, from
    Grygorii Strashko.

    14) ARP header on-stack storage is wrong in flow dissector, from Simon
    Horman.

    15) Lost retransmit and reordering SNMP stats in TCP can be
    underreported. From Yuchung Cheng.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (82 commits)
    nfp: fix potential use after free on xdp prog
    tcp: fix reordering SNMP under-counting
    tcp: fix lost retransmit SNMP under-counting
    sctp: get sock from transport in sctp_transport_update_pmtu
    net: ethernet: ti: cpsw: fix race condition during open()
    l2tp: fix PPP pseudo-wire auto-loading
    bnx2x: fix spelling mistake in macros HW_INTERRUT_ASSERT_SET_*
    l2tp: take reference on sessions being dumped
    tcp: minimize false-positives on TCP/GRO check
    sctp: check for dst and pathmtu update in sctp_packet_config
    flow dissector: correct size of storage for ARP
    net: ethernet: ti: cpsw: wake tx queues on ndo_tx_timeout
    l2tp: take a reference on sessions used in genetlink handlers
    l2tp: hold session while sending creation notifications
    l2tp: fix duplicate session creation
    l2tp: ensure session can't get removed during pppol2tp_session_ioctl()
    l2tp: fix race in l2tp_recv_common()
    sctp: use right in and out stream cnt
    bpf: add various verifier test cases for self-tests
    bpf, verifier: fix rejection of unaligned access checks for map_value_adj
    ...

    Linus Torvalds
     

31 Mar, 2017

1 commit