11 Apr, 2020

2 commits

  • Pull more SCSI updates from James Bottomley:
    "This is a batch of changes that didn't make it in the initial pull
    request because the lpfc series had to be rebased to redo an incorrect
    split.

    It's basically driver updates to lpfc, target, bnx2fc and ufs with the
    rest being minor updates except the sr_block_release one which fixes a
    use after free introduced by the removal of the global mutex in the
    first patch set"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (35 commits)
    scsi: core: Add DID_ALLOC_FAILURE and DID_MEDIUM_ERROR to hostbyte_table
    scsi: ufs: Use ufshcd_config_pwr_mode() when scaling gear
    scsi: bnx2fc: fix boolreturn.cocci warnings
    scsi: zfcp: use fallthrough;
    scsi: aacraid: do not overwrite retval in aac_reset_adapter()
    scsi: sr: Fix sr_block_release()
    scsi: aic7xxx: Remove more FreeBSD-specific code
    scsi: mpt3sas: Fix kernel panic observed on soft HBA unplug
    scsi: ufs: set device as active power mode after resetting device
    scsi: iscsi: Report unbind session event when the target has been removed
    scsi: lpfc: Change default SCSI LUN QD to 64
    scsi: libfc: rport state move to PLOGI if all PRLI retry exhausted
    scsi: libfc: If PRLI rejected, move rport to PLOGI state
    scsi: bnx2fc: Update the driver version to 2.12.13
    scsi: bnx2fc: Fix SCSI command completion after cleanup is posted
    scsi: bnx2fc: Process the RQE with CQE in interrupt context
    scsi: target: use the stack for XCOPY passthrough cmds
    scsi: target: increase XCOPY I/O size
    scsi: target: avoid per-loop XCOPY buffer allocations
    scsi: target: drop xcopy DISK BLOCK LENGTH debug
    ...

    Linus Torvalds
     
  • Pull more s390 updates from Vasily Gorbik:
    "Second round of s390 fixes and features for 5.7:

    - The rest of fallthrough; annotations conversion

    - Couple of fixes for ADD uevents in the common I/O layer

    - Minor refactoring of the queued direct I/O code"

    * tag 's390-5.7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/cio: generate delayed uevent for vfio-ccw subchannels
    s390/cio: avoid duplicated 'ADD' uevents
    s390/qdio: clear DSCI early for polling drivers
    s390/qdio: inline shared_ind()
    s390/qdio: remove cdev from init_data
    s390/qdio: allow for non-contiguous SBAL array in init_data
    zfcp: inline zfcp_qdio_setup_init_data()
    s390/qdio: cleanly split alloc and establish
    s390/mm: use fallthrough;

    Linus Torvalds
     

09 Apr, 2020

1 commit

  • Pull libnvdimm and dax updates from Dan Williams:
    "There were multiple touches outside of drivers/nvdimm/ this round to
    add cross arch compatibility to the devm_memremap_pages() interface,
    enhance numa information for persistent memory ranges, and add a
    zero_page_range() dax operation.

    This cycle I switched from the patchwork api to Konstantin's b4 script
    for collecting tags (from x86, PowerPC, filesystem, and device-mapper
    folks), and everything looks to have gone ok there. This has all
    appeared in -next with no reported issues.

    Summary:

    - Add support for region alignment configuration and enforcement to
    fix compatibility across architectures and PowerPC page size
    configurations.

    - Introduce 'zero_page_range' as a dax operation. This facilitates
    filesystem-dax operation without a block-device.

    - Introduce phys_to_target_node() to facilitate drivers that want to
    know resulting numa node if a given reserved address range was
    onlined.

    - Advertise a persistence-domain for of_pmem and papr_scm. The
    persistence domain indicates where cpu-store cycles need to reach
    in the platform-memory subsystem before the platform will consider
    them power-fail protected.

    - Promote numa_map_to_online_node() to a cross-kernel generic
    facility.

    - Save x86 numa information to allow for node-id lookups for reserved
    memory ranges, deploy that capability for the e820-pmem driver.

    - Pick up some miscellaneous minor fixes, that missed v5.6-final,
    including a some smatch reports in the ioctl path and some unit
    test compilation fixups.

    - Fixup some flexible-array declarations"

    * tag 'libnvdimm-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (29 commits)
    dax: Move mandatory ->zero_page_range() check in alloc_dax()
    dax,iomap: Add helper dax_iomap_zero() to zero a range
    dax: Use new dax zero page method for zeroing a page
    dm,dax: Add dax zero_page_range operation
    s390,dcssblk,dax: Add dax zero_page_range operation to dcssblk driver
    dax, pmem: Add a dax operation zero_page_range
    pmem: Add functions for reading/writing page to/from pmem
    libnvdimm: Update persistence domain value for of_pmem and papr_scm device
    tools/test/nvdimm: Fix out of tree build
    libnvdimm/region: Fix build error
    libnvdimm/region: Replace zero-length array with flexible-array member
    libnvdimm/label: Replace zero-length array with flexible-array member
    ACPI: NFIT: Replace zero-length array with flexible-array member
    libnvdimm/region: Introduce an 'align' attribute
    libnvdimm/region: Introduce NDD_LABELING
    libnvdimm/namespace: Enforce memremap_compat_align()
    libnvdimm/pfn: Prevent raw mode fallback if pfn-infoblock valid
    libnvdimm: Out of bounds read in __nd_ioctl()
    acpi/nfit: improve bounds checking for 'func'
    mm/memremap_pages: Introduce memremap_compat_align()
    ...

    Linus Torvalds
     

06 Apr, 2020

8 commits

  • The common I/O layer delays the ADD uevent for subchannels and
    delegates generating this uevent to the individual subchannel
    drivers. The vfio-ccw I/O subchannel driver, however, did not
    do that, and will not generate an ADD uevent for subchannels
    that had not been bound to a different driver (or none at all,
    which also triggers the uevent).

    Generate the ADD uevent at the end of the probe function if
    uevents were still suppressed for the device.

    Message-Id:
    Fixes: 63f1934d562d ("vfio: ccw: basic implementation for vfio_ccw driver")
    Reviewed-by: Eric Farman
    Signed-off-by: Cornelia Huck
    Signed-off-by: Vasily Gorbik

    Cornelia Huck
     
  • The common I/O layer delays the ADD uevent for subchannels and
    delegates generating this uevent to the individual subchannel
    drivers. The io_subchannel driver will do so when the associated
    ccw_device has been registered -- but unconditionally, so more
    ADD uevents will be generated if a subchannel has been unbound
    from the io_subchannel driver and later rebound.

    To fix this, only generate the ADD event if uevents were still
    suppressed for the device.

    Fixes: fa1a8c23eb7d ("s390: cio: Delay uevents for subchannels")
    Message-Id:
    Reported-by: Boris Fiuczynski
    Reviewed-by: Peter Oberparleiter
    Reviewed-by: Boris Fiuczynski
    Signed-off-by: Cornelia Huck
    Signed-off-by: Vasily Gorbik

    Cornelia Huck
     
  • Polling drivers in a configuration with 1 Input Queue currently keep
    their DSCI armed all the way through the poll cycle, until
    qdio_start_irq() clears it.

    _Any_ intermittent QDIO interrupt delivered to tiqdio_thinint_handler()
    will thus cause
    1) the 'adapter_int' statistic to be incremented,
    2) a call to tiqdio_call_inq_handlers() for this device, and then
    3) the 'int_discarded' statistics to be incremented.

    This causes overhead & complexity in the IRQ path, along with ambiguity
    in the statistics.
    On the other hand the device should be in IRQ avoidance mode during a
    poll cycle, so there won't be a lot of DSCI ping-pong that this
    micro-optimization could prevent.

    So align the DSCI handling with what we already do for devices with
    multiple Input Queues: clear it right away while processing the IRQ.

    For the non-polling path this means that we no longer need to handle
    the 1-queue case separately.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Benjamin Block
    Signed-off-by: Vasily Gorbik

    Julian Wiedmann
     
  • This is just prep work for a subsequent patch, no functional change.

    For the non-polling path we can pull the code chunk in front of the
    for-loop, since it only evaluates to true for a 1-queue configuration.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Benjamin Block
    Signed-off-by: Vasily Gorbik

    Julian Wiedmann
     
  • It's no longer needed.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Benjamin Block
    Signed-off-by: Vasily Gorbik

    Julian Wiedmann
     
  • Upper-layer drivers allocate their SBALs by calling qdio_alloc_buffers()
    for each individual queue. But when later passing the SBAL addresses to
    qdio_establish(), they need to be in a single array of pointers.
    So if the driver uses multiple Input or Output queues, it needs to
    allocate a temporary array just to present all its SBAL pointers in this
    layout.

    This patch slightly changes the format of the QDIO initialization data,
    so that drivers can pass a per-queue array where each element points to
    a queue's SBAL array.
    zfcp doesn't use multiple queues, so the impact there is trivial.
    For qeth this brings a nice reduction in complexity, and removes
    a page-sized allocation.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Benjamin Block
    Signed-off-by: Vasily Gorbik

    Julian Wiedmann
     
  • In preparation for a subsequent patch, move the setup of init_data into
    the only caller.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Benjamin Block
    Signed-off-by: Vasily Gorbik

    Julian Wiedmann
     
  • All that qdio_allocate() actually uses from the init_data is the cdev,
    and the number of Input and Output Queues. Have the driver pass those as
    parameters, and defer the init_data processing into qdio_establish().
    This includes writing per-device(!) trace entries, and most of the
    sanity checks.

    Signed-off-by: Julian Wiedmann
    Reviewed-by: Benjamin Block
    Signed-off-by: Vasily Gorbik

    Julian Wiedmann
     

05 Apr, 2020

1 commit

  • Pull s390 updates from Vasily Gorbik:

    - Update maintainers. Niklas Schnelle takes over zpci and Vineeth
    Vijayan common io code.

    - Extend cpuinfo to include topology information.

    - Add new extended counters for IBM z15 and sampling buffer allocation
    rework in perf code.

    - Add control over zeroing out memory during system restart.

    - CCA protected key block version 2 support and other
    fixes/improvements in crypto code.

    - Convert to new fallthrough; annotations.

    - Replace zero-length arrays with flexible-arrays.

    - QDIO debugfs and other small improvements.

    - Drop 2-level paging support optimization for compat tasks. Varios mm
    cleanups.

    - Remove broken and unused hibernate / power management support.

    - Remove fake numa support which does not bring any benefits.

    - Exclude offline CPUs from CPU topology masks to be more consistent
    with other architectures.

    - Prevent last branching instruction address leaking to userspace.

    - Other small various fixes and improvements all over the code.

    * tag 's390-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (57 commits)
    s390/mm: cleanup init_new_context() callback
    s390/mm: cleanup virtual memory constants usage
    s390/mm: remove page table downgrade support
    s390/qdio: set qdio_irq->cdev at allocation time
    s390/qdio: remove unused function declarations
    s390/ccwgroup: remove pm support
    s390/ap: remove power management code from ap bus and drivers
    s390/zcrypt: use kvmalloc instead of kmalloc for 256k alloc
    s390/mm: cleanup arch_get_unmapped_area() and friends
    s390/ism: remove pm support
    s390/cio: use fallthrough;
    s390/vfio: use fallthrough;
    s390/zcrypt: use fallthrough;
    s390: use fallthrough;
    s390/cpum_sf: Fix wrong page count in error message
    s390/diag: fix display of diagnose call statistics
    s390/ap: Remove ap device suspend and resume callbacks
    s390/pci: Improve handling of unset UID
    s390/pci: Fix zpci_alloc_domain() over allocation
    s390/qdio: pass ISC as parameter to chsc_sadc()
    ...

    Linus Torvalds
     

03 Apr, 2020

3 commits

  • zero_page_range() dax operation is mandatory for dax devices. Right now
    that check happens in dax_zero_page_range() function. Dan thinks that's
    too late and its better to do the check earlier in alloc_dax().

    I also modified alloc_dax() to return pointer with error code in it in
    case of failure. Right now it returns NULL and caller assumes failure
    happened due to -ENOMEM. But with this ->zero_page_range() check, I
    need to return -EINVAL instead.

    Signed-off-by: Vivek Goyal
    Link: https://lore.kernel.org/r/20200401161125.GB9398@redhat.com
    Signed-off-by: Dan Williams

    Vivek Goyal
     
  • Add dax operation zero_page_range for dcssblk driver.

    Suggested-by: Christoph Hellwig
    Signed-off-by: Vivek Goyal
    Reviewed-by: Gerald Schaefer
    CC: linux-s390@vger.kernel.org
    Link: https://lore.kernel.org/r/20200228163456.1587-4-vgoyal@redhat.com
    Signed-off-by: Dan Williams

    Vivek Goyal
     
  • Pull SCSI updates from James Bottomley:
    "This series has a huge amount of churn because it pulls in Mauro's doc
    update changing all our txt files to rst ones.

    Excluding that, we have the usual driver updates (qla2xxx, ufs, lpfc,
    zfcp, ibmvfc, pm80xx, aacraid), a treewide update for scnprintf and
    some other minor updates.

    The major core change is Hannes moving functions out of the aacraid
    driver and into the core"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (223 commits)
    scsi: aic7xxx: aic97xx: Remove FreeBSD-specific code
    scsi: ufs: Do not rely on prefetched data
    scsi: dc395x: remove dc395x_bios_param
    scsi: libiscsi: Fix error count for active session
    scsi: hpsa: correct race condition in offload enabled
    scsi: message: fusion: Replace zero-length array with flexible-array member
    scsi: qedi: Add PCI shutdown handler support
    scsi: qedi: Add MFW error recovery process
    scsi: ufs: Enable block layer runtime PM for well-known logical units
    scsi: ufs-qcom: Override devfreq parameters
    scsi: ufshcd: Let vendor override devfreq parameters
    scsi: ufshcd: Update the set frequency to devfreq
    scsi: ufs: Resume ufs host before accessing ufs device
    scsi: ufs-mediatek: customize the delay for enabling host
    scsi: ufs: make HCE polling more compact to improve initialization latency
    scsi: ufs: allow custom delay prior to host enabling
    scsi: ufs-mediatek: use common delay function
    scsi: ufs: introduce common and flexible delay function
    scsi: ufs: use an enum for host capabilities
    scsi: ufs: fix uninitialized tx_lanes in ufshcd_disable_tx_lcc()
    ...

    Linus Torvalds
     

02 Apr, 2020

1 commit

  • Pull trivial tree updates from Jiri Kosina:
    "My attempt to revitalize trivial queue I've been neglecting for years
    (what a disaster that was for this world, right? :) ) with patches
    collected from backlog that were still relevant and not applied
    elsewhere in the meantime"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    err.h: remove deprecated PTR_RET for good
    blk-mq: Fix typo in comment
    x86/boot: Fix comment spelling
    sh: mach-highlander: Fix comment spelling
    s390/dasd: Fix comment spelling
    mfd: wm8994: Fix comment spelling
    docs: Add reference in binfmt-misc.rst
    genirq: fix kerneldoc comment for irq_desc
    drm/amdgpu: fix two documentation mismatch issues
    HID: fix Kconfig word ordering
    list/hashtable: minor documentation corrections.

    Linus Torvalds
     

01 Apr, 2020

2 commits

  • Convert the various uses of fallthrough comments to fallthrough;

    Done via script
    Link: https://lore.kernel.org/lkml/b56602fcf79f849e733e7b521bb0e17895d390fa.1582230379.git.joe.com/

    Signed-off-by: Joe Perches
    Reviewed-by: Fedor Loshakov
    Reviewed-by: Steffen Maier
    [bblock@linux.ibm.com: resolved merge conflict with recently upstream-sent patch "zfcp: expose fabric name as common fc_host sysfs attribute"]
    Link: https://lore.kernel.org/r/d14669a67a17392490d3184117941123765db1a4.1585663010.git.bblock@linux.ibm.com
    Signed-off-by: Benjamin Block
    Signed-off-by: Martin K. Petersen

    Joe Perches
     
  • Pull networking updates from David Miller:
    "Highlights:

    1) Fix the iwlwifi regression, from Johannes Berg.

    2) Support BSS coloring and 802.11 encapsulation offloading in
    hardware, from John Crispin.

    3) Fix some potential Spectre issues in qtnfmac, from Sergey
    Matyukevich.

    4) Add TTL decrement action to openvswitch, from Matteo Croce.

    5) Allow paralleization through flow_action setup by not taking the
    RTNL mutex, from Vlad Buslov.

    6) A lot of zero-length array to flexible-array conversions, from
    Gustavo A. R. Silva.

    7) Align XDP statistics names across several drivers for consistency,
    from Lorenzo Bianconi.

    8) Add various pieces of infrastructure for offloading conntrack, and
    make use of it in mlx5 driver, from Paul Blakey.

    9) Allow using listening sockets in BPF sockmap, from Jakub Sitnicki.

    10) Lots of parallelization improvements during configuration changes
    in mlxsw driver, from Ido Schimmel.

    11) Add support to devlink for generic packet traps, which report
    packets dropped during ACL processing. And use them in mlxsw
    driver. From Jiri Pirko.

    12) Support bcmgenet on ACPI, from Jeremy Linton.

    13) Make BPF compatible with RT, from Thomas Gleixnet, Alexei
    Starovoitov, and your's truly.

    14) Support XDP meta-data in virtio_net, from Yuya Kusakabe.

    15) Fix sysfs permissions when network devices change namespaces, from
    Christian Brauner.

    16) Add a flags element to ethtool_ops so that drivers can more simply
    indicate which coalescing parameters they actually support, and
    therefore the generic layer can validate the user's ethtool
    request. Use this in all drivers, from Jakub Kicinski.

    17) Offload FIFO qdisc in mlxsw, from Petr Machata.

    18) Support UDP sockets in sockmap, from Lorenz Bauer.

    19) Fix stretch ACK bugs in several TCP congestion control modules,
    from Pengcheng Yang.

    20) Support virtual functiosn in octeontx2 driver, from Tomasz
    Duszynski.

    21) Add region operations for devlink and use it in ice driver to dump
    NVM contents, from Jacob Keller.

    22) Add support for hw offload of MACSEC, from Antoine Tenart.

    23) Add support for BPF programs that can be attached to LSM hooks,
    from KP Singh.

    24) Support for multiple paths, path managers, and counters in MPTCP.
    From Peter Krystad, Paolo Abeni, Florian Westphal, Davide Caratti,
    and others.

    25) More progress on adding the netlink interface to ethtool, from
    Michal Kubecek"

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2121 commits)
    net: ipv6: rpl_iptunnel: Fix potential memory leak in rpl_do_srh_inline
    cxgb4/chcr: nic-tls stats in ethtool
    net: dsa: fix oops while probing Marvell DSA switches
    net/bpfilter: remove superfluous testing message
    net: macb: Fix handling of fixed-link node
    net: dsa: ksz: Select KSZ protocol tag
    netdevsim: dev: Fix memory leak in nsim_dev_take_snapshot_write
    net: stmmac: add EHL 2.5Gbps PCI info and PCI ID
    net: stmmac: add EHL PSE0 & PSE1 1Gbps PCI info and PCI ID
    net: stmmac: create dwmac-intel.c to contain all Intel platform
    net: dsa: bcm_sf2: Support specifying VLAN tag egress rule
    net: dsa: bcm_sf2: Add support for matching VLAN TCI
    net: dsa: bcm_sf2: Move writing of CFP_DATA(5) into slicing functions
    net: dsa: bcm_sf2: Check earlier for FLOW_EXT and FLOW_MAC_EXT
    net: dsa: bcm_sf2: Disable learning for ASP port
    net: dsa: b53: Deny enslaving port 7 for 7278 into a bridge
    net: dsa: b53: Prevent tagged VLAN on port 7 for 7278
    net: dsa: b53: Restore VLAN entries upon (re)configuration
    net: dsa: bcm_sf2: Fix overflow checks
    hv_netvsc: Remove unnecessary round_up for recv_completion_cnt
    ...

    Linus Torvalds
     

31 Mar, 2020

1 commit

  • Pull block updates from Jens Axboe:

    - Online capacity resizing (Balbir)

    - Number of hardware queue change fixes (Bart)

    - null_blk fault injection addition (Bart)

    - Cleanup of queue allocation, unifying the node/no-node API
    (Christoph)

    - Cleanup of genhd, moving code to where it makes sense (Christoph)

    - Cleanup of the partition handling code (Christoph)

    - disk stat fixes/improvements (Konstantin)

    - BFQ improvements (Paolo)

    - Various fixes and improvements

    * tag 'for-5.7/block-2020-03-29' of git://git.kernel.dk/linux-block: (72 commits)
    block: return NULL in blk_alloc_queue() on error
    block: move bio_map_* to blk-map.c
    Revert "blkdev: check for valid request queue before issuing flush"
    block: simplify queue allocation
    bcache: pass the make_request methods to blk_queue_make_request
    null_blk: use blk_mq_init_queue_data
    block: add a blk_mq_init_queue_data helper
    block: move the ->devnode callback to struct block_device_operations
    block: move the part_stat* helpers from genhd.h to a new header
    block: move block layer internals out of include/linux/genhd.h
    block: move guard_bio_eod to bio.c
    block: unexport get_gendisk
    block: unexport disk_map_sector_rcu
    block: unexport disk_get_part
    block: mark part_in_flight and part_in_flight_rw static
    block: mark block_depr static
    block: factor out requeue handling from dispatch code
    block/diskstats: replace time_in_queue with sum of request times
    block/diskstats: accumulate all per-cpu counters in one pass
    block/diskstats: more accurate approximation of io_ticks for slow disks
    ...

    Linus Torvalds
     

30 Mar, 2020

1 commit

  • Enable the L3 driver's IPv4 address notifier to watch for events on qeth
    devices that have been moved into a net namespace. We need to program
    those IPs into the HW just as usual, otherwise inbound traffic won't
    flow.

    Fixes: 6133fb1aa137 ("[NETNS]: Disable inetaddr notifiers in namespaces other than initial.")
    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     

28 Mar, 2020

4 commits

  • OSN devices currently spend an awful long time in qeth_l2_set_online()
    until various unsupported HW cmds time out. This has been broken for
    over two years, ever since
    commit d22ffb5a712f ("s390/qeth: fix IPA command submission race")
    triggered a FW bug in cmd processing.
    Prior to commit 782e4a792147 ("s390/qeth: don't poll for cmd IO completion"),
    this wait for timeout would have even been spent busy-polling.

    The offending patch was picked up by stable and all relevant distros,
    and yet noone noticed.
    OSN setups only ever worked in combination with an out-of-tree blob, and
    the last machine that even offered HW with OSN support was released back
    in 2015.

    Rather than attempting to work-around this FW issue for no actual gain,
    add a deprecation warning so anyone who still wants to maintain this
    part of the code can speak up. Else rip it all out in 2021.

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

    Julian Wiedmann
     
  • The last machine generation that supports OSN is z13, and OSX is only
    supported up to z14. Allow users and distros to decide whether they
    still need support for these device types.

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

    Julian Wiedmann
     
  • Ever since commit 4a71df50047f ("qeth: new qeth device driver") introduced
    this attribute, it can be read & written but has no actual effect.

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

    Julian Wiedmann
     
  • Current make_request based drivers use either blk_alloc_queue_node or
    blk_alloc_queue to allocate a queue, and then set up the make_request_fn
    function pointer and a few parameters using the blk_queue_make_request
    helper. Simplify this by passing the make_request pointer to
    blk_alloc_queue, and while at it merge the _node variant into the main
    helper by always passing a node_id, and remove the superfluous gfp_mask
    parameter. A lower-level __blk_alloc_queue is kept for the blk-mq case.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     

27 Mar, 2020

6 commits


26 Mar, 2020

10 commits

  • Overlapping header include additions in macsec.c

    A bug fix in 'net' overlapping with the removal of 'version'
    string in ena_netdev.c

    Overlapping test additions in selftests Makefile

    Overlapping PCI ID table adjustments in iwlwifi driver.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Replace list_for_each() with list_for_each_entry(), and
    list_entry(head.next) with list_first_entry().

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

    Julian Wiedmann
     
  • When a device is configured in prio-queue mode to pin all traffic onto
    a specific HW queue, treat this as a distinct variant of prio-queueing
    instead of QETH_NO_PRIO_QUEUEING.

    This corrects an error message from qeth_osa_set_output_queues() for
    devices configured in such a mode.

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

    Julian Wiedmann
     
  • Return the correct errnos when .ndo_set_mac_address fails to set a new
    MAC address.

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

    Julian Wiedmann
     
  • Since IQD devices complete (most of) their transmissions synchronously,
    they don't offer TX completion IRQs and have no HW coalescing controls.
    But we can fake the easy parts in SW, and give the user some control wrt
    to how often the TX NAPI code should be triggered to process the TX
    completions.

    Having per-queue controls can in particular help the dedicated mcast
    queue, as it likely benefits from different fine-tuning than what the
    ucast queues need.

    CC: Jakub Kicinski
    Signed-off-by: Julian Wiedmann
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • Count the number of TX doorbells we issue to the qdio layer.

    Also count the number of actual frames in a TX buffer, and then
    use this data along with the byte count during TX completion.
    We'll make additional use of the frame count in a subsequent patch.

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

    Julian Wiedmann
     
  • We're down to a single bit flag for MAC-address related status, reflect
    that in the info struct.
    Also set up the flag during initialization instead of clearing it during
    shutdown - one more little step towards unifying the shutdown code.

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

    Julian Wiedmann
     
  • The logic that deals with errors from qeth_l3_get_unique_id() is quite
    complex: it sets card->unique_id to 0xfffe, additionally flags it as
    UNIQUE_ID_NOT_BY_CARD and later takes this flag as cue to not propagate
    card->unique_id to dev->dev_id. With dev->dev_id thus holding 0,
    addrconf_ifid_eui48() applies its default behaviour.

    Get rid of all the special bit masks, and just return the old uid in
    case of an error. For the vast majority of cases this will be 0 (and so
    we still get the desired default behaviour) - with the rare exception
    where qeth_l3_get_unique_id() might have been called earlier but the
    initialization then failed at a later point.

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

    Julian Wiedmann
     
  • When the support for polling drivers was initially added, it only
    considered Input Queue 0. But as QDIO interrupts are actually for the
    full device and not a single queue, this doesn't really fit for
    configurations where multiple Input Queues are used.

    Rework the qdio code so that interrupts for a polling driver are not
    split up into actions for each queue. Instead deliver the interrupt as
    a single event, and let the driver decide which queue needs what action.

    When re-enabling the QDIO interrupt via qdio_start_irq(), this means
    that the qdio code needs to
    (1) put _all_ eligible queues back into a state where they raise IRQs,
    (2) and afterwards check _all_ eligible queues for new work to bridge
    the race window.

    On the qeth side of things (as the only qdio polling driver), we can now
    add CQ polling support to the main NAPI poll routine. It doesn't consume
    NAPI budget, and to avoid hogging the CPU we yield control after
    completing one full queue worth of buffers.
    The subsequent qdio_start_irq() will check for any additional work, and
    have us re-schedule the NAPI instance accordingly.

    Signed-off-by: Julian Wiedmann
    Acked-by: Heiko Carstens
    Signed-off-by: David S. Miller

    Julian Wiedmann
     
  • Whenever all completed RX buffers have been processed
    (ie. rx->b_count == 0), we call down to the HW layer to scan for
    additional buffers. If no further buffers are available, the code
    breaks out of the while-loop.

    So we never reach the 'process an RX buffer' step with rx->b_count == 0,
    eliminate that check and one level of indentation.

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

    Julian Wiedmann