22 Jun, 2019

1 commit


14 Jun, 2019

13 commits

  • We statically allocate 8 cmd buffers on the read channel, when the only
    IO left that's still using them is the long-running READ.
    Replace this with a single allocated cmd, that gets restarted whenever
    the READ completed.

    This introduces refcounting for allocated cmds, so that the READ cmd can
    survive the IO completion.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • The current IDX sequence first sends one WRITE cmd to activate the
    device, and then sends a second cmd that READs the response.

    Using qeth_alloc_cmd(), we can combine this into a single IO with two
    command-chained CCWs.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • The RCD code is the last remaining IO path that doesn't use the
    qeth_send_control_data() infrastructure. Doing so allows us to remove
    all sorts of custom state machinery and logic in the IRQ handler.

    Instead of introducing statically allocated cmd buffers for this single
    IO on the data channel, use the new qeth_alloc_cmd() helper.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • qeth currently uses a fixed set of statically allocated cmd buffers for
    the read and write IO channels. This (1) doesn't play well with the single
    RCD cmd we need to issue on the data channel, (2) doesn't provide the
    necessary flexibility for certain IDX improvements, and (3) is also rather
    wasteful since the buffers are idle most of the time.

    Add a new type of cmd buffer that is dynamically allocated, and keeps
    its ccw chain in the DMA data area. Since this touches most callers of
    qeth_setup_ccw(), also add a new CCW flags parameter for future usage.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • Each cmd buffer maintains a pointer to the IO channel that it was/will
    be issued on. So when dealing with cmd buffers, we don't need to pass
    around a separate channel pointer.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • The vast majority of SETUP-classified trace entries can be moved to
    their device-specific trace file. This reduces pollution of the global
    SETUP file, and provides a consistent trace view of all activity on the
    device.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • OSN currently provides a custom code path to submit IPA cmds, without
    waiting for the cmd response. Replace it with qeth_send_ipa_cmd(), which
    uses the common qeth_send_control_data() IO infrastructure.

    By setting a custom iob->callback, we can now provide feedback to the
    caller about whether the cmd has been successfully submitted to HW.
    Since the callback then immediately wakes up the reply-waiter object, we
    maintain the old behaviour of returning early without waiting for the
    response.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • The basic MPC initialization sequence is strictly sequential, and
    waiting for an available cmd buffer should never be necessary.
    So this change only affects the OSN path, where dangling waiters on an
    unbounded wait_event() are not desirable. Switch to qeth_get_buffers(),
    and let OSN callers deal with -ENOMEM.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • When called from qeth_core_probe_device(), qeth_determine_capabilities()
    initializes the device's BLKT defaults. From all other callers, the
    ccw_device has already been set online and the BLKT setting is skipped.

    Clean this up by extracting the BLKT setting into a separate helper that
    gets called from the right place.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • The completion of a pending READ cmd is processed via
    qeth_issue_next_read_cb(). Let this callback also start the next READ
    cmd, instead of hardcoding that step into the IRQ handler.

    While at it remove the check of the channel state,
    __qeth_issue_next_read() already does this.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • When the tear down sequence in qeth_l?_stop_card() has finished, the
    card is guaranteed to be in DOWN state and we don't have to check for
    it again.
    With this insight we can also remove the redundant setting of
    card->state in qeth_l?_set_online()'s error path.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • Slightly reduce the complexity of the core xmit path, by replacing some
    open-coded logic with the corresponding helpers.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • Current code suppresses debug entries when an TX buffer completes in
    ERROR state with no error indication set in SBALF15.
    This was introduced back with
    commit 58490f18071d ("qeth: HiperSockets SIGA retry support on CC=2.").
    But qeth no longer retries after CC=2, and this sort of suppression
    make no sense anymore. Remove it.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     

13 Jun, 2019

1 commit


08 Jun, 2019

1 commit

  • Pull networking fixes from David Miller:

    1) Free AF_PACKET po->rollover properly, from Willem de Bruijn.

    2) Read SFP eeprom in max 16 byte increments to avoid problems with
    some SFP modules, from Russell King.

    3) Fix UDP socket lookup wrt. VRF, from Tim Beale.

    4) Handle route invalidation properly in s390 qeth driver, from Julian
    Wiedmann.

    5) Memory leak on unload in RDS, from Zhu Yanjun.

    6) sctp_process_init leak, from Neil HOrman.

    7) Fix fib_rules rule insertion semantic change that broke Android,
    from Hangbin Liu.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (33 commits)
    pktgen: do not sleep with the thread lock held.
    net: mvpp2: Use strscpy to handle stat strings
    net: rds: fix memory leak in rds_ib_flush_mr_pool
    ipv6: fix EFAULT on sendto with icmpv6 and hdrincl
    ipv6: use READ_ONCE() for inet->hdrincl as in ipv4
    Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied"
    net: aquantia: fix wol configuration not applied sometimes
    ethtool: fix potential userspace buffer overflow
    Fix memory leak in sctp_process_init
    net: rds: fix memory leak when unload rds_rdma
    ipv6: fix the check before getting the cookie in rt6_get_cookie
    ipv4: not do cache for local delivery if bc_forwarding is enabled
    s390/qeth: handle error when updating TX queue count
    s390/qeth: fix VLAN attribute in bridge_hostnotify udev event
    s390/qeth: check dst entry before use
    s390/qeth: handle limited IPv4 broadcast in L3 TX path
    net: fix indirect calls helpers for ptype list hooks.
    net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set
    udp: only choose unbound UDP socket for multicast when not in a VRF
    net/tls: replace the sleeping lock around RX resync with a bit lock
    ...

    Linus Torvalds
     

06 Jun, 2019

4 commits

  • netif_set_real_num_tx_queues() can return an error, deal with it.

    Fixes: 73dc2daf110f ("s390/qeth: add TX multiqueue support for OSA devices")
    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • Enabling sysfs attribute bridge_hostnotify triggers a series of udev events
    for the MAC addresses of all currently connected peers. In case no VLAN is
    set for a peer, the device reports the corresponding MAC addresses with
    VLAN ID 4096. This currently results in attribute VLAN=4096 for all
    non-VLAN interfaces in the initial series of events after host-notify is
    enabled.

    Instead, no VLAN attribute should be reported in the udev event for
    non-VLAN interfaces.

    Only the initial events face this issue. For dynamic changes that are
    reported later, the device uses a validity flag.

    This also changes the code so that it now sets the VLAN attribute for
    MAC addresses with VID 0. On Linux, no qeth interface will ever be
    registered with VID 0: Linux kernel registers VID 0 on all network
    interfaces initially, but qeth will drop .ndo_vlan_rx_add_vid for VID 0.
    Peers with other OSs could register MACs with VID 0.

    Fixes: 9f48b9db9a22 ("qeth: bridgeport support - address notifications")
    Signed-off-by: Alexandra Winter
    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Alexandra Winter
     
  • While qeth_l3 uses netif_keep_dst() to hold onto the dst, a skb's dst
    may still have been obsoleted (via dst_dev_put()) by the time that we
    end up using it. The dst then points to the loopback interface, which
    means the neighbour lookup in qeth_l3_get_cast_type() determines a bogus
    cast type of RTN_BROADCAST.
    For IQD interfaces this causes us to place such skbs on the wrong
    HW queue, resulting in TX errors.

    Fix-up the various call sites to first validate the dst entry with
    dst_check(), and fall back accordingly.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • When selecting the cast type of a neighbourless IPv4 skb (eg. on a raw
    socket), qeth_l3 falls back to the packet's destination IP address.
    For this case we should classify traffic sent to 255.255.255.255 as
    broadcast.
    This fixes DHCP requests, which were misclassified as unicast
    (and for IQD interfaces thus ended up on the wrong HW queue).

    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     

03 Jun, 2019

1 commit

  • Pull SCSI fixes from James Bottomley:
    "Six minor fixes to device drivers and one to the multipath alua
    handler.

    The most extensive fix is the zfcp port remove prevention one, but
    it's impact is only s390"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: libsas: delete sas port if expander discover failed
    scsi: libsas: only clear phy->in_shutdown after shutdown event done
    scsi: scsi_dh_alua: Fix possible null-ptr-deref
    scsi: smartpqi: properly set both the DMA mask and the coherent DMA mask
    scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs)
    scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove
    scsi: libcxgbi: add a check for NULL pointer in cxgbi_check_route()

    Linus Torvalds
     

01 Jun, 2019

1 commit

  • Pull s390 fixes from Heiko Carstens:

    - Farewell Martin Schwidefsky: add Martin to CREDITS and remove him
    from MAINTAINERS

    - Vasily Gorbik and Christian Borntraeger join as maintainers for s390

    - Fix locking bug in ctr(aes) and ctr(des) s390 specific ciphers

    - A rather large patch which fixes gcm-aes-s390 scatter gather handling

    - Fix zcrypt wrong dispatching for control domain CPRBs

    - Fix assignment of bus resources in PCI code

    - Fix structure definition for set PCI function

    - Fix one compile error and one compile warning seen when
    CONFIG_OPTIMIZE_INLINING is enabled

    * tag 's390-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    MAINTAINERS: add Vasily Gorbik and Christian Borntraeger for s390
    MAINTAINERS: Farewell Martin Schwidefsky
    s390/crypto: fix possible sleep during spinlock aquired
    s390/crypto: fix gcm-aes-s390 selftest failures
    s390/zcrypt: Fix wrong dispatching for control domain CPRBs
    s390/pci: fix assignment of bus resources
    s390/pci: fix struct definition for set PCI function
    s390: mark __cpacf_check_opcode() and cpacf_query_func() as __always_inline
    s390: add unreachable() to dump_fault_info() to fix -Wmaybe-uninitialized

    Linus Torvalds
     

30 May, 2019

2 commits

  • When the user tries to remove a zfcp port via sysfs, we only rejected it if
    there are zfcp unit children under the port. With purely automatically
    scanned LUNs there are no zfcp units but only SCSI devices. In such cases,
    the port_remove erroneously continued. We close the port and this
    implicitly closes all LUNs under the port. The SCSI devices survive with
    their private zfcp_scsi_dev still holding a reference to the "removed"
    zfcp_port (still allocated but invisible in sysfs) [zfcp_get_port_by_wwpn
    in zfcp_scsi_slave_alloc]. This is not a problem as long as the fc_rport
    stays blocked. Once (auto) port scan brings back the removed port, we
    unblock its fc_rport again by design. However, there is no mechanism that
    would recover (open) the LUNs under the port (no "ersfs_3" without
    zfcp_unit [zfcp_erp_strategy_followup_success]). Any pending or new I/O to
    such LUN leads to repeated:

    Done: NEEDS_RETRY Result: hostbyte=DID_IMM_RETRY driverbyte=DRIVER_OK

    See also v4.10 commit 6f2ce1c6af37 ("scsi: zfcp: fix rport unblock race
    with LUN recovery"). Even a manual LUN recovery
    (echo 0 > /sys/bus/scsi/devices/H:C:T:L/zfcp_failed)
    does not help, as the LUN links to the old "removed" port which remains
    to lack ZFCP_STATUS_COMMON_RUNNING [zfcp_erp_required_act].
    The only workaround is to first ensure that the fc_rport is blocked
    (e.g. port_remove again in case it was re-discovered by (auto) port scan),
    then delete the SCSI devices, and finally re-discover by (auto) port scan.
    The port scan includes an fc_rport unblock, which in turn triggers
    a new scan on the scsi target to freshly get new pure auto scan LUNs.

    Fix this by rejecting port_remove also if there are SCSI devices
    (even without any zfcp_unit) under this port. Re-use mechanics from v3.7
    commit d99b601b6338 ("[SCSI] zfcp: restore refcount check on port_remove").
    However, we have to give up zfcp_sysfs_port_units_mutex earlier in unit_add
    to prevent a deadlock with scsi_host scan taking shost->scan_mutex first
    and then zfcp_sysfs_port_units_mutex now in our zfcp_scsi_slave_alloc().

    Signed-off-by: Steffen Maier
    Fixes: b62a8d9b45b9 ("[SCSI] zfcp: Use SCSI device data zfcp scsi dev instead of zfcp unit")
    Fixes: f8210e34887e ("[SCSI] zfcp: Allow midlayer to scan for LUNs when running in NPIV mode")
    Cc: #2.6.37+
    Reviewed-by: Benjamin Block
    Signed-off-by: Martin K. Petersen

    Steffen Maier
     
  • With this early return due to zfcp_unit child(ren), we don't use the
    zfcp_port reference from the earlier zfcp_get_port_by_wwpn() anymore and
    need to put it.

    Signed-off-by: Steffen Maier
    Fixes: d99b601b6338 ("[SCSI] zfcp: restore refcount check on port_remove")
    Cc: #3.7+
    Reviewed-by: Jens Remus
    Reviewed-by: Benjamin Block
    Signed-off-by: Martin K. Petersen

    Steffen Maier
     

28 May, 2019

1 commit

  • The zcrypt device driver does not handle CPRBs which address
    a control domain correctly. This fix introduces a workaround:
    The domain field of the request CPRB is checked if there is
    a valid domain value in there. If this is true and the value
    is a control only domain (a domain which is enabled in the
    crypto config ADM mask but disabled in the AQM mask) the
    CPRB is forwarded to the default usage domain. If there is
    no default domain, the request is rejected with an ENODEV.

    This fix is important for maintaining crypto adapters. For
    example one LPAR can use a crypto adapter domain ('Control
    and Usage') but another LPAR needs to be able to maintain
    this adapter domain ('Control'). Scenarios like this did
    not work properly and the patch enables this.

    Signed-off-by: Harald Freudenberger
    Signed-off-by: Heiko Carstens

    Harald Freudenberger
     

21 May, 2019

1 commit

  • Pankaj reports that starting with commit ad428cdb525a "dax: Check the
    end of the block-device capacity with dax_direct_access()" device-mapper
    no longer allows dax operation. This results from the stricter checks in
    __bdev_dax_supported() that validate that the start and end of a
    block-device map to the same 'pagemap' instance.

    Teach the dax-core and device-mapper to validate the 'pagemap' on a
    per-target basis. This is accomplished by refactoring the
    bdev_dax_supported() internals into generic_fsdax_supported() which
    takes a sector range to validate. Consequently generic_fsdax_supported()
    is suitable to be used in a device-mapper ->iterate_devices() callback.
    A new ->dax_supported() operation is added to allow composite devices to
    split and route upper-level bdev_dax_supported() requests.

    Fixes: ad428cdb525a ("dax: Check the end of the block-device...")
    Cc:
    Cc: Ira Weiny
    Cc: Dave Jiang
    Cc: Keith Busch
    Cc: Matthew Wilcox
    Cc: Vishal Verma
    Cc: Heiko Carstens
    Cc: Martin Schwidefsky
    Reviewed-by: Jan Kara
    Reported-by: Pankaj Gupta
    Reviewed-by: Pankaj Gupta
    Tested-by: Pankaj Gupta
    Tested-by: Vaibhav Jain
    Reviewed-by: Mike Snitzer
    Signed-off-by: Dan Williams

    Dan Williams
     

18 May, 2019

1 commit

  • Pull more s390 updates from Martin Schwidefsky:

    - Enhancements for the QDIO layer

    - Remove the RCP trace event

    - Avoid three build issues

    - Move the defconfig to the configs directory

    * tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390: move arch/s390/defconfig to arch/s390/configs/defconfig
    s390/qdio: optimize state inspection of HW-owned SBALs
    s390/qdio: use get_buf_state() in debug_get_buf_state()
    s390/qdio: allow to scan all Output SBALs in one go
    s390/cio: Remove tracing for rchp instruction
    s390/kasan: adapt disabled_wait usage to avoid build error
    latent_entropy: avoid build error when plugin cflags are not set
    s390/boot: fix compiler error due to missing awk strtonum

    Linus Torvalds
     

17 May, 2019

1 commit

  • Pull more block updates from Jens Axboe:
    "This is mainly some late lightnvm changes that came in just before the
    merge window, as well as fixes that have been queued up since the
    initial pull request was frozen.

    This contains:

    - lightnvm changes, fixing race conditions, improving memory
    utilization, and improving pblk compatability (Chansol, Igor,
    Marcin)

    - NVMe pull request with minor fixes all over the map (via Christoph)

    - remove redundant error print in sata_rcar (Geert)

    - struct_size() cleanup (Jackie)

    - dasd CONFIG_LBADF warning fix (Ming)

    - brd cond_resched() improvement (Mikulas)"

    * tag 'for-5.2/block-post-20190516' of git://git.kernel.dk/linux-block: (41 commits)
    block/bio-integrity: use struct_size() in kmalloc()
    nvme: validate cntlid during controller initialisation
    nvme: change locking for the per-subsystem controller list
    nvme: trace all async notice events
    nvme: fix typos in nvme status code values
    nvme-fabrics: remove unused argument
    nvme-multipath: avoid crash on invalid subsystem cntlid enumeration
    nvme-fc: use separate work queue to avoid warning
    nvme-rdma: remove redundant reference between ib_device and tagset
    nvme-pci: mark expected switch fall-through
    nvme-pci: add known admin effects to augument admin effects log page
    nvme-pci: init shadow doorbell after each reset
    brd: add cond_resched to brd_free_pages
    sata_rcar: Remove ata_host_alloc() error printing
    s390/dasd: fix build warning in dasd_eckd_build_cp_raw
    lightnvm: pblk: use nvm_rq_to_ppa_list()
    lightnvm: pblk: simplify partial read path
    lightnvm: do not remove instance under global lock
    lightnvm: track inflight target creations
    lightnvm: pblk: recover only written metadata
    ...

    Linus Torvalds
     

15 May, 2019

1 commit

  • Pull virtio updates from Michael Tsirkin:

    - enable packed ring support for s390

    - several fixes

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    virtio/s390: enable packed ring
    virtio/s390: DMA support for virtio-ccw
    virtio/s390: use vring_create_virtqueue
    virtio/virtio_ring: do some comment fixes
    vhost-scsi: remove incorrect memory barrier
    tools/virtio/ringtest: Remove bogus definition of BUG_ON()
    virtio_ring: Fix potential mem leak in virtqueue_add_indirect_packed

    Linus Torvalds
     

13 May, 2019

3 commits

  • Nothing precludes to accepting VIRTIO_F_RING_PACKED any more.

    Signed-off-by: Halil Pasic
    Signed-off-by: Michael S. Tsirkin
    Reviewed-by: Cornelia Huck

    Halil Pasic
     
  • Currently virtio-ccw devices do not work if the device has
    VIRTIO_F_IOMMU_PLATFORM. In future we do want to support DMA API with
    virtio-ccw.

    Let us do the plumbing, so the feature VIRTIO_F_IOMMU_PLATFORM works
    with virtio-ccw.

    Let us also switch from legacy avail/used accessors to the DMA aware
    ones (even if it isn't strictly necessary), and remove the legacy
    accessors (we were the last users).

    Signed-off-by: Halil Pasic
    Signed-off-by: Michael S. Tsirkin
    Reviewed-by: Cornelia Huck

    Halil Pasic
     
  • The commit 2a2d1382fe9d ("virtio: Add improved queue allocation API")
    establishes a new way of allocating virtqueues (as a part of the effort
    that taught DMA to virtio rings).

    In the future we will want virtio-ccw to use the DMA API as well.

    Let us switch from the legacy method of allocating virtqueues to
    vring_create_virtqueue() as the first step into that direction.

    Signed-off-by: Halil Pasic
    Signed-off-by: Michael S. Tsirkin
    Reviewed-by: Cornelia Huck

    Halil Pasic
     

09 May, 2019

1 commit

  • Commit 72deb455b5ec619f ("block: remove CONFIG_LBDAF") changes
    sector_t to u64 unconditionaly, so apply '%llu' for print
    sector_t variable.

    Fixes: 72deb455b5ec619f ("block: remove CONFIG_LBDAF")
    Cc: linux-s390@vger.kernel.org
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Ming Lei
    Signed-off-by: Jens Axboe

    Ming Lei
     

08 May, 2019

6 commits

  • When get_buf_states() gets called with count > 1, it scans the
    corresponding number of SBAL states until it encounters a mismatch.

    But when these SBALs are in a HW-owned state, the callers don't actually
    care _how many_ such SBALs are on the queue. If we can't process the
    first SBAL, we can't process any of the following SBALs either. So when
    the first SBAL is HW-owned, skip the scan of the remaining SBALs and
    thus save some CPU time.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Jens Remus
    Signed-off-by: Martin Schwidefsky

    Julian Wiedmann
     
  • For a 1-SBAL state inspection, use the corresponding helper.
    No functional change, just reducing the number of immediate callers to
    get_buf_states().

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Jens Remus
    Signed-off-by: Martin Schwidefsky

    Julian Wiedmann
     
  • Old code restricted the number of inspected SBALs to
    QDIO_MAX_BUFFERS_PER_Q - 1, as otherwise the first_to_check and
    first_to_kick cursors could overlap. Subsequent code would then assume that
    there was no progress on the queue, when in fact _all_ SBALs on the queue
    were ready-to-process.

    This limitation no longer applies, so allow the queue-scan code to inspect
    all SBALs on the queue. Note that qeth requires an additional patch
    ("s390/qeth: stop/wake TX queues based on their fill level"), to avoid
    potential queue stalls when all 128 SBALs are reported as ready-to-process.

    Signed-off-by: Julian Wiedmann
    Signed-off-by: Martin Schwidefsky

    Julian Wiedmann
     
  • Since commit d485235b00 "s390: assume diag308 set always works",
    the kernel does not use the rchp instruction anymore. So let's
    remove the tracing for it.

    Signed-off-by: Farhan Ali
    Acked-by: Sebastian Ott
    Signed-off-by: Martin Schwidefsky

    Farhan Ali
     
  • Pull networking updates from David Miller:
    "Highlights:

    1) Support AES128-CCM ciphers in kTLS, from Vakul Garg.

    2) Add fib_sync_mem to control the amount of dirty memory we allow to
    queue up between synchronize RCU calls, from David Ahern.

    3) Make flow classifier more lockless, from Vlad Buslov.

    4) Add PHY downshift support to aquantia driver, from Heiner
    Kallweit.

    5) Add SKB cache for TCP rx and tx, from Eric Dumazet. This reduces
    contention on SLAB spinlocks in heavy RPC workloads.

    6) Partial GSO offload support in XFRM, from Boris Pismenny.

    7) Add fast link down support to ethtool, from Heiner Kallweit.

    8) Use siphash for IP ID generator, from Eric Dumazet.

    9) Pull nexthops even further out from ipv4/ipv6 routes and FIB
    entries, from David Ahern.

    10) Move skb->xmit_more into a per-cpu variable, from Florian
    Westphal.

    11) Improve eBPF verifier speed and increase maximum program size,
    from Alexei Starovoitov.

    12) Eliminate per-bucket spinlocks in rhashtable, and instead use bit
    spinlocks. From Neil Brown.

    13) Allow tunneling with GUE encap in ipvs, from Jacky Hu.

    14) Improve link partner cap detection in generic PHY code, from
    Heiner Kallweit.

    15) Add layer 2 encap support to bpf_skb_adjust_room(), from Alan
    Maguire.

    16) Remove SKB list implementation assumptions in SCTP, your's truly.

    17) Various cleanups, optimizations, and simplifications in r8169
    driver. From Heiner Kallweit.

    18) Add memory accounting on TX and RX path of SCTP, from Xin Long.

    19) Switch PHY drivers over to use dynamic featue detection, from
    Heiner Kallweit.

    20) Support flow steering without masking in dpaa2-eth, from Ioana
    Ciocoi.

    21) Implement ndo_get_devlink_port in netdevsim driver, from Jiri
    Pirko.

    22) Increase the strict parsing of current and future netlink
    attributes, also export such policies to userspace. From Johannes
    Berg.

    23) Allow DSA tag drivers to be modular, from Andrew Lunn.

    24) Remove legacy DSA probing support, also from Andrew Lunn.

    25) Allow ll_temac driver to be used on non-x86 platforms, from Esben
    Haabendal.

    26) Add a generic tracepoint for TX queue timeouts to ease debugging,
    from Cong Wang.

    27) More indirect call optimizations, from Paolo Abeni"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1763 commits)
    cxgb4: Fix error path in cxgb4_init_module
    net: phy: improve pause mode reporting in phy_print_status
    dt-bindings: net: Fix a typo in the phy-mode list for ethernet bindings
    net: macb: Change interrupt and napi enable order in open
    net: ll_temac: Improve error message on error IRQ
    net/sched: remove block pointer from common offload structure
    net: ethernet: support of_get_mac_address new ERR_PTR error
    net: usb: smsc: fix warning reported by kbuild test robot
    staging: octeon-ethernet: Fix of_get_mac_address ERR_PTR check
    net: dsa: support of_get_mac_address new ERR_PTR error
    net: dsa: sja1105: Fix status initialization in sja1105_get_ethtool_stats
    vrf: sit mtu should not be updated when vrf netdev is the link
    net: dsa: Fix error cleanup path in dsa_init_module
    l2tp: Fix possible NULL pointer dereference
    taprio: add null check on sched_nest to avoid potential null pointer dereference
    net: mvpp2: cls: fix less than zero check on a u32 variable
    net_sched: sch_fq: handle non connected flows
    net_sched: sch_fq: do not assume EDT packets are ordered
    net: hns3: use devm_kcalloc when allocating desc_cb
    net: hns3: some cleanup for struct hns3_enet_ring
    ...

    Linus Torvalds
     
  • Pull stream_open conversion from Kirill Smelkov:

    - remove unnecessary double nonseekable_open from drivers/char/dtlk.c
    as noticed by Pavel Machek while reviewing nonseekable_open ->
    stream_open mass conversion.

    - the mass conversion patch promised in commit 10dce8af3422 ("fs:
    stream_open - opener for stream-like files so that read and write can
    run simultaneously without deadlock") and is automatically generated
    by running

    $ make coccicheck MODE=patch COCCI=scripts/coccinelle/api/stream_open.cocci

    I've verified each generated change manually - that it is correct to
    convert - and each other nonseekable_open instance left - that it is
    either not correct to convert there, or that it is not converted due
    to current stream_open.cocci limitations. More details on this in the
    patch.

    - finally, change VFS to pass ppos=NULL into .read/.write for files
    that declare themselves streams. It was suggested by Rasmus Villemoes
    and makes sure that if ppos starts to be erroneously used in a stream
    file, such bug won't go unnoticed and will produce an oops instead of
    creating illusion of position change being taken into account.

    Note: this patch does not conflict with "fuse: Add FOPEN_STREAM to
    use stream_open()" that will be hopefully coming via FUSE tree,
    because fs/fuse/ uses new-style .read_iter/.write_iter, and for these
    accessors position is still passed as non-pointer kiocb.ki_pos .

    * tag 'stream_open-5.2' of https://lab.nexedi.com/kirr/linux:
    vfs: pass ppos=NULL to .read()/.write() of FMODE_STREAM files
    *: convert stream-like files from nonseekable_open -> stream_open
    dtlk: remove double call to nonseekable_open

    Linus Torvalds
     

07 May, 2019

1 commit

  • Pull s390 updates from Martin Schwidefsky:

    - Support for kernel address space layout randomization

    - Add support for kernel image signature verification

    - Convert s390 to the generic get_user_pages_fast code

    - Convert s390 to the stack unwind API analog to x86

    - Add support for CPU directed interrupts for PCI devices

    - Provide support for MIO instructions to the PCI base layer, this will
    allow the use of direct PCI mappings in user space code

    - Add the basic KVM guest ultravisor interface for protected VMs

    - Add AT_HWCAP bits for several new hardware capabilities

    - Update the CPU measurement facility counter definitions to SVN 6

    - Arnds cleanup patches for his quest to get LLVM compiles working

    - A vfio-ccw update with bug fixes and support for halt and clear

    - Improvements for the hardware TRNG code

    - Another round of cleanup for the QDIO layer

    - Numerous cleanups and bug fixes

    * tag 's390-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (98 commits)
    s390/vdso: drop unnecessary cc-ldoption
    s390: fix clang -Wpointer-sign warnigns in boot code
    s390: drop CONFIG_VIRT_TO_BUS
    s390: boot, purgatory: pass $(CLANG_FLAGS) where needed
    s390: only build for new CPUs with clang
    s390: simplify disabled_wait
    s390/ftrace: use HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
    s390/unwind: introduce stack unwind API
    s390/opcodes: add missing instructions to the disassembler
    s390/bug: add entry size to the __bug_table section
    s390: use proper expoline sections for .dma code
    s390/nospec: rename assembler generated expoline thunks
    s390: add missing ENDPROC statements to assembler functions
    locking/lockdep: check for freed initmem in static_obj()
    s390/kernel: add support for kernel address space layout randomization (KASLR)
    s390/kernel: introduce .dma sections
    s390/sclp: do not use static sccbs
    s390/kprobes: use static buffer for insn_page
    s390/kernel: convert SYSCALL and PGM_CHECK handlers to .quad
    s390/kernel: build a relocatable kernel
    ...

    Linus Torvalds