27 Feb, 2019

1 commit

  • Incoming packets may have IP header checksum verified by the host.
    They may not have IP header checksum computed after coalescing.
    This patch re-compute the checksum when necessary, otherwise the
    packets may be dropped, because Linux network stack always checks it.

    Signed-off-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    Haiyang Zhang
     

24 Jan, 2019

4 commits

  • Fix all typos from hyperv netvsc code comments.

    Signed-off-by: Adrian Vladu

    Cc: "K. Y. Srinivasan"
    Cc: Haiyang Zhang
    Cc: Stephen Hemminger
    Cc: Sasha Levin
    Cc: "David S. Miller"
    Cc: "Alessandro Pilotti"
    Signed-off-by: Sasha Levin

    Adrian Vladu
     
  • Changing mtu, channels, or buffer sizes ops call to netvsc_attach(),
    rndis_set_subchannel(), which always reset the hash key to default
    value. That will override hash key changed previously. This patch
    fixes the problem by save the hash key, then restore it when we re-
    add the netvsc device.

    Fixes: ff4a44199012 ("netvsc: allow get/set of RSS indirection table")
    Signed-off-by: Haiyang Zhang
    Reviewed-by: Michael Kelley
    [sl: fix up subject line]
    Signed-off-by: Sasha Levin

    Haiyang Zhang
     
  • These assignments occur in multiple places. The patch refactor them
    to a function for simplicity. It also puts the struct to heap area
    for future expension.

    Signed-off-by: Haiyang Zhang
    Reviewed-by: Michael Kelley
    [sl: fix up subject line]
    Signed-off-by: Sasha Levin

    Haiyang Zhang
     
  • Hyper-V hosts require us to disable RSS before changing RSS key,
    otherwise the changing request will fail. This patch fixes the
    coding error.

    Fixes: ff4a44199012 ("netvsc: allow get/set of RSS indirection table")
    Reported-by: Wei Hu
    Signed-off-by: Haiyang Zhang
    Reviewed-by: Michael Kelley
    [sl: fix up subject line]
    Signed-off-by: Sasha Levin

    Haiyang Zhang
     

14 Dec, 2018

1 commit

  • A follow-up patch will add a notifier type NETDEV_PRE_CHANGEADDR, which
    allows vetoing of MAC address changes. One prominent path to that
    notification is through dev_set_mac_address(). Therefore give this
    function an extack argument, so that it can be packed together with the
    notification. Thus a textual reason for rejection (or a warning) can be
    communicated back to the user.

    Signed-off-by: Petr Machata
    Acked-by: Jiri Pirko
    Reviewed-by: Ido Schimmel
    Signed-off-by: David S. Miller

    Petr Machata
     

07 Dec, 2018

2 commits

  • In order to pass extack together with NETDEV_PRE_UP notifications, it's
    necessary to route the extack to __dev_open() from diverse (possibly
    indirect) callers. One prominent API through which the notification is
    invoked is dev_change_flags().

    Therefore extend dev_change_flags() with and extra extack argument and
    update all users. Most of the calls end up just encoding NULL, but
    several sites (VLAN, ipvlan, VRF, rtnetlink) do have extack available.

    Since the function declaration line is changed anyway, name the other
    function arguments to placate checkpatch.

    Signed-off-by: Petr Machata
    Acked-by: Jiri Pirko
    Reviewed-by: Ido Schimmel
    Reviewed-by: David Ahern
    Signed-off-by: David S. Miller

    Petr Machata
     
  • In order to pass extack together with NETDEV_PRE_UP notifications, it's
    necessary to route the extack to __dev_open() from diverse (possibly
    indirect) callers. One prominent API through which the notification is
    invoked is dev_open().

    Therefore extend dev_open() with and extra extack argument and update
    all users. Most of the calls end up just encoding NULL, but bond and
    team drivers have the extack readily available.

    Signed-off-by: Petr Machata
    Acked-by: Jiri Pirko
    Reviewed-by: Ido Schimmel
    Reviewed-by: David Ahern
    Signed-off-by: David S. Miller

    Petr Machata
     

22 Nov, 2018

1 commit


16 Oct, 2018

1 commit

  • The VF device's serial number is saved as a string in PCI slot's
    kobj name, not the slot->number. This patch corrects the netvsc
    driver, so the VF device can be successfully paired with synthetic
    NIC.

    Fixes: 00d7ddba1143 ("hv_netvsc: pair VF based on serial number")
    Reported-by: Vitaly Kuznetsov
    Signed-off-by: Haiyang Zhang
    Reviewed-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Haiyang Zhang
     

03 Oct, 2018

1 commit

  • Similar to other patches from ERic.

    As diagnosed by Song Liu, ndo_poll_controller() can
    be very dangerous on loaded hosts, since the cpu
    calling ndo_poll_controller() might steal all NAPI
    contexts (for all RX/TX queues of the NIC). This capture
    can last for unlimited amount of time, since one
    cpu is generally not able to drain all the queues under load.

    In netvsc driver it uses NAPI for TX completions. The default
    poll_napi will do this for us now and avoid the capture.

    Signed-off-by: Stephen Hemminger
    Cc: Haiyang Zhang
    Cc: Eric Dumazet
    Reviewed-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

02 Oct, 2018

1 commit

  • The RSC feature -- a bit field "internal" was added here with total
    size unchanged:
    struct rndis_per_packet_info {
    u32 size;
    u32 type:31;
    u32 internal:1;
    u32 ppi_offset;
    };

    On TX path, we put rndis msg into skb head room, which is not zeroed
    before passing to us. We do not use the "internal" field in TX path,
    but it may impact older hosts which use the entire 32 bits as "type".

    To fix the bug, this patch sets the field "internal" to zero.

    Fixes: c8e4eff4675f ("hv_netvsc: Add support for LRO/RSC in the vSwitch")
    Signed-off-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    Haiyang Zhang
     

23 Sep, 2018

2 commits


17 Sep, 2018

1 commit

  • Matching network device based on MAC address is problematic
    since a non VF network device can be creted with a duplicate MAC
    address causing confusion and problems. The VMBus API does provide
    a serial number that is a better matching method.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

14 Sep, 2018

1 commit

  • When netvsc device is removed it can call reschedule in RCU context.
    This happens because canceling the subchannel setup work could (in theory)
    cause a reschedule when manipulating the timer.

    To reproduce, run with lockdep enabled kernel and unbind
    a network device from hv_netvsc (via sysfs).

    [ 160.682011] WARNING: suspicious RCU usage
    [ 160.707466] 4.19.0-rc3-uio+ #2 Not tainted
    [ 160.709937] -----------------------------
    [ 160.712352] ./include/linux/rcupdate.h:302 Illegal context switch in RCU read-side critical section!
    [ 160.723691]
    [ 160.723691] other info that might help us debug this:
    [ 160.723691]
    [ 160.730955]
    [ 160.730955] rcu_scheduler_active = 2, debug_locks = 1
    [ 160.762813] 5 locks held by rebind-eth.sh/1812:
    [ 160.766851] #0: 000000008befa37a (sb_writers#6){.+.+}, at: vfs_write+0x184/0x1b0
    [ 160.773416] #1: 00000000b097f236 (&of->mutex){+.+.}, at: kernfs_fop_write+0xe2/0x1a0
    [ 160.783766] #2: 0000000041ee6889 (kn->count#3){++++}, at: kernfs_fop_write+0xeb/0x1a0
    [ 160.787465] #3: 0000000056d92a74 (&dev->mutex){....}, at: device_release_driver_internal+0x39/0x250
    [ 160.816987] #4: 0000000030f6031e (rcu_read_lock){....}, at: netvsc_remove+0x1e/0x250 [hv_netvsc]
    [ 160.828629]
    [ 160.828629] stack backtrace:
    [ 160.831966] CPU: 1 PID: 1812 Comm: rebind-eth.sh Not tainted 4.19.0-rc3-uio+ #2
    [ 160.832952] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v1.0 11/26/2012
    [ 160.832952] Call Trace:
    [ 160.832952] dump_stack+0x85/0xcb
    [ 160.832952] ___might_sleep+0x1a3/0x240
    [ 160.832952] __flush_work+0x57/0x2e0
    [ 160.832952] ? __mutex_lock+0x83/0x990
    [ 160.832952] ? __kernfs_remove+0x24f/0x2e0
    [ 160.832952] ? __kernfs_remove+0x1b2/0x2e0
    [ 160.832952] ? mark_held_locks+0x50/0x80
    [ 160.832952] ? get_work_pool+0x90/0x90
    [ 160.832952] __cancel_work_timer+0x13c/0x1e0
    [ 160.832952] ? netvsc_remove+0x1e/0x250 [hv_netvsc]
    [ 160.832952] ? __lock_is_held+0x55/0x90
    [ 160.832952] netvsc_remove+0x9a/0x250 [hv_netvsc]
    [ 160.832952] vmbus_remove+0x26/0x30
    [ 160.832952] device_release_driver_internal+0x18a/0x250
    [ 160.832952] unbind_store+0xb4/0x180
    [ 160.832952] kernfs_fop_write+0x113/0x1a0
    [ 160.832952] __vfs_write+0x36/0x1a0
    [ 160.832952] ? rcu_read_lock_sched_held+0x6b/0x80
    [ 160.832952] ? rcu_sync_lockdep_assert+0x2e/0x60
    [ 160.832952] ? __sb_start_write+0x141/0x1a0
    [ 160.832952] ? vfs_write+0x184/0x1b0
    [ 160.832952] vfs_write+0xbe/0x1b0
    [ 160.832952] ksys_write+0x55/0xc0
    [ 160.832952] do_syscall_64+0x60/0x1b0
    [ 160.832952] entry_SYSCALL_64_after_hwframe+0x49/0xbe
    [ 160.832952] RIP: 0033:0x7fe48f4c8154

    Resolve this by getting RTNL earlier. This is safe because the subchannel
    work queue does trylock on RTNL and will detect the race.

    Fixes: 7b2ee50c0cd5 ("hv_netvsc: common detach logic")
    Signed-off-by: Stephen Hemminger
    Reviewed-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

01 Sep, 2018

1 commit

  • This patch fixes the race between netvsc_probe() and
    rndis_set_subchannel(), which can cause a deadlock.

    These are the related 3 paths which show the deadlock:

    path #1:
    Workqueue: hv_vmbus_con vmbus_onmessage_work [hv_vmbus]
    Call Trace:
    schedule
    schedule_preempt_disabled
    __mutex_lock
    __device_attach
    bus_probe_device
    device_add
    vmbus_device_register
    vmbus_onoffer
    vmbus_onmessage_work
    process_one_work
    worker_thread
    kthread
    ret_from_fork

    path #2:
    schedule
    schedule_preempt_disabled
    __mutex_lock
    netvsc_probe
    vmbus_probe
    really_probe
    __driver_attach
    bus_for_each_dev
    driver_attach_async
    async_run_entry_fn
    process_one_work
    worker_thread
    kthread
    ret_from_fork

    path #3:
    Workqueue: events netvsc_subchan_work [hv_netvsc]
    Call Trace:
    schedule
    rndis_set_subchannel
    netvsc_subchan_work
    process_one_work
    worker_thread
    kthread
    ret_from_fork

    Before path #1 finishes, path #2 can start to run, because just before
    the "bus_probe_device(dev);" in device_add() in path #1, there is a line
    "object_uevent(&dev->kobj, KOBJ_ADD);", so systemd-udevd can
    immediately try to load hv_netvsc and hence path #2 can start to run.

    Next, path #2 offloads the subchannal's initialization to a workqueue,
    i.e. path #3, so we can end up in a deadlock situation like this:

    Path #2 gets the device lock, and is trying to get the rtnl lock;
    Path #3 gets the rtnl lock and is waiting for all the subchannel messages
    to be processed;
    Path #1 is trying to get the device lock, but since #2 is not releasing
    the device lock, path #1 has to sleep; since the VMBus messages are
    processed one by one, this means the sub-channel messages can't be
    procedded, so #3 has to sleep with the rtnl lock held, and finally #2
    has to sleep... Now all the 3 paths are sleeping and we hit the deadlock.

    With the patch, we can make sure #2 gets both the device lock and the
    rtnl lock together, gets its job done, and releases the locks, so #1
    and #3 will not be blocked for ever.

    Fixes: 8195b1396ec8 ("hv_netvsc: fix deadlock on hotplug")
    Signed-off-by: Dexuan Cui
    Cc: Stephen Hemminger
    Cc: K. Y. Srinivasan
    Cc: Haiyang Zhang
    Signed-off-by: David S. Miller

    Dexuan Cui
     

22 Aug, 2018

1 commit

  • Registering another device with same MAC address (such as TAP, VPN or
    DPDK KNI) will confuse the VF autobinding logic. Restrict the search
    to only run if the device is known to be a PCI attached VF.

    Fixes: e8ff40d4bff1 ("hv_netvsc: improve VF device matching")
    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

19 Aug, 2018

1 commit

  • Pull char/misc driver updates from Greg KH:
    "Here is the bit set of char/misc drivers for 4.19-rc1

    There is a lot here, much more than normal, seems like everyone is
    writing new driver subsystems these days... Anyway, major things here
    are:

    - new FSI driver subsystem, yet-another-powerpc low-level hardware
    bus

    - gnss, finally an in-kernel GPS subsystem to try to tame all of the
    crazy out-of-tree drivers that have been floating around for years,
    combined with some really hacky userspace implementations. This is
    only for GNSS receivers, but you have to start somewhere, and this
    is great to see.

    Other than that, there are new slimbus drivers, new coresight drivers,
    new fpga drivers, and loads of DT bindings for all of these and
    existing drivers.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (255 commits)
    android: binder: Rate-limit debug and userspace triggered err msgs
    fsi: sbefifo: Bump max command length
    fsi: scom: Fix NULL dereference
    misc: mic: SCIF Fix scif_get_new_port() error handling
    misc: cxl: changed asterisk position
    genwqe: card_base: Use true and false for boolean values
    misc: eeprom: assignment outside the if statement
    uio: potential double frees if __uio_register_device() fails
    eeprom: idt_89hpesx: clean up an error pointer vs NULL inconsistency
    misc: ti-st: Fix memory leak in the error path of probe()
    android: binder: Show extra_buffers_size in trace
    firmware: vpd: Fix section enabled flag on vpd_section_destroy
    platform: goldfish: Retire pdev_bus
    goldfish: Use dedicated macros instead of manual bit shifting
    goldfish: Add missing includes to goldfish.h
    mux: adgs1408: new driver for Analog Devices ADGS1408/1409 mux
    dt-bindings: mux: add adi,adgs1408
    Drivers: hv: vmbus: Cleanup synic memory free path
    Drivers: hv: vmbus: Remove use of slow_virt_to_phys()
    Drivers: hv: vmbus: Reset the channel callback in vmbus_onoffer_rescind()
    ...

    Linus Torvalds
     

15 Aug, 2018

1 commit

  • The recent commit 916c5e1413be ("hv/netvsc: fix handling of fallback
    to single queue mode") tried to fix the fallback behavior to a single
    queue mode, but it changed the function to return zero incorrectly,
    while the function should return an object pointer. Eventually this
    leads to a NULL dereference at the callers that expect non-NULL
    value.

    Fix it by returning the proper net_device object.

    Fixes: 916c5e1413be ("hv/netvsc: fix handling of fallback to single queue mode")
    Signed-off-by: Takashi Iwai
    Reviewed-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Takashi Iwai
     

31 Jul, 2018

1 commit

  • This patch implements following ethtool stats fields for netvsc:
    cpu_tx/rx_packets/bytes
    cpu_vf_tx/rx_packets/bytes

    Corresponding per-cpu counters already exist in current code. Exposing
    these counters will help troubleshooting performance issues.

    for_each_present_cpu() was used instead of for_each_possible_cpu().
    for_each_possible_cpu() would create very long and useless output.
    It is still being used for internal buffer, but not for ethtool
    output.

    There could be an overflow if cpu was added between ethtool
    call netvsc_get_sset_count() and netvsc_get_ethtool_stats() and
    netvsc_get_strings(). (still safe if cpu was removed)
    ethtool makes these three function calls separately.
    As long as we use ethtool, I can't see any clean solution.

    Currently and in foreseeable short term, Hyper-V doesn't support
    cpu hot-plug. Plus, ethtool is for admin use. Unlikely the admin
    would perform such combo operations.

    Changes in v2:
    - Remove cpp style comment
    - Resubmit after freeze

    Changes in v3:
    - Reimplemented with kvmalloc instead of alloc_percpu

    Changes in v4:
    - Fixed inconsistent array size
    - Use kvmalloc_array instead of kvmalloc

    Signed-off-by: Yidong Ren
    Reviewed-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Yidong Ren
     

21 Jul, 2018

1 commit


19 Jul, 2018

1 commit

  • If out ring is full temporarily and receive completion cannot go out,
    we may still need to reschedule napi if certain conditions are met.
    Otherwise the napi poll might be stopped forever, and cause network
    disconnect.

    Fixes: 7426b1a51803 ("netvsc: optimize receive completions")
    Signed-off-by: Stephen Hemminger
    Signed-off-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    Haiyang Zhang
     

17 Jul, 2018

1 commit

  • The netvsc device may need to fallback to running in single queue
    mode if host side only wants to support single queue.

    Recent change for handling mtu broke this in setup logic.

    Reported-by: Dan Carpenter
    Fixes: 3ffe64f1a641 ("hv_netvsc: split sub-channel setup into async and sync")
    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

16 Jul, 2018

1 commit


10 Jul, 2018

2 commits

  • For most of these calls we can just pass NULL through to the fallback
    function as the sb_dev. The only cases where we cannot are the cases where
    we might be dealing with either an upper device or a driver that would
    have configured things to support an sb_dev itself.

    The only driver that has any significant change in this patch set should be
    ixgbe as we can drop the redundant functionality that existed in both the
    ndo_select_queue function and the fallback function that was passed through
    to us.

    Signed-off-by: Alexander Duyck
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Alexander Duyck
     
  • This patch makes it so that instead of passing a void pointer as the
    accel_priv we instead pass a net_device pointer as sb_dev. Making this
    change allows us to pass the subordinate device through to the fallback
    function eventually so that we can keep the actual code in the
    ndo_select_queue call as focused on possible on the exception cases.

    Signed-off-by: Alexander Duyck
    Tested-by: Andrew Bowers
    Signed-off-by: Jeff Kirsher

    Alexander Duyck
     

03 Jul, 2018

1 commit


30 Jun, 2018

1 commit

  • When doing device hotplug the sub channel must be async to avoid
    deadlock issues because device is discovered in softirq context.

    When doing changes to MTU and number of channels, the setup
    must be synchronous to avoid races such as when MTU and device
    settings are done in a single ip command.

    Reported-by: Thomas Walker
    Fixes: 8195b1396ec8 ("hv_netvsc: fix deadlock on hotplug")
    Fixes: 732e49850c5e ("netvsc: fix race on sub channel creation")
    Signed-off-by: Stephen Hemminger
    Signed-off-by: Haiyang Zhang
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

15 Jun, 2018

1 commit


13 Jun, 2018

3 commits

  • When VF is added, the paravirtual device is already present
    and may have been moved to another network namespace. For example,
    sometimes the management interface is put in another net namespace
    in some environments.

    The VF should get moved to where the netvsc device is when the
    VF is discovered. The user can move it later (if desired).

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • When finding the parent netvsc device, the search needs to be across
    all netvsc device instances (independent of network namespace).

    Find parent device of VF using upper_dev_get routine which
    searches only adjacent list.

    Fixes: e8ff40d4bff1 ("hv_netvsc: improve VF device matching")
    Signed-off-by: Stephen Hemminger

    netns aware byref
    Signed-off-by: David S. Miller

    Stephen Hemminger
     
  • The callback model of handling network failover is not suitable
    in the current form.
    1. It was merged without addressing all the review feedback.
    2. It was merged without approval of any of the netvsc maintainers.
    3. Design discussion on how to handle PV/VF fallback is still
    not complete.
    4. IMHO the code model using callbacks is trying to make
    something common which isn't.

    Revert the netvsc specific changes for now. Does not impact ongoing
    development of failover model for virtio.
    Revisit this after a simpler library based failover kernel
    routines are extracted.

    This reverts
    commit 9c6ffbacdb57 ("hv_netvsc: fix error return code in netvsc_probe()")
    and
    commit 1ff78076d8dd ("netvsc: refactor notifier/event handling code to use the failover framework")

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

11 Jun, 2018

2 commits

  • Pull networking fixes from David Miller:

    1) Fix several bpfilter/UMH bugs, in particular make the UMH build not
    depend upon X86 specific Kconfig symbols. From Alexei Starovoitov.

    2) Fix handling of modified context pointer in bpf verifier, from
    Daniel Borkmann.

    3) Kill regression in ifdown/ifup sequences for hv_netvsc driver, from
    Dexuan Cui.

    4) When the bonding primary member name changes, we have to re-evaluate
    the bond->force_primary setting, from Xiangning Yu.

    5) Eliminate possible padding beyone end of SKB in cdc_ncm driver, from
    Bjørn Mork.

    6) RX queue length reported for UDP sockets in procfs and socket diag
    are inaccurate, from Paolo Abeni.

    7) Fix br_fdb_find_port() locking, from Petr Machata.

    8) Limit sk_rcvlowat values properly in TCP, from Soheil Hassas
    Yeganeh.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (23 commits)
    tcp: limit sk_rcvlowat by the maximum receive buffer
    net: phy: dp83822: use BMCR_ANENABLE instead of BMSR_ANEGCAPABLE for DP83620
    socket: close race condition between sock_close() and sockfs_setattr()
    net: bridge: Fix locking in br_fdb_find_port()
    udp: fix rx queue len reported by diag and proc interface
    cdc_ncm: avoid padding beyond end of skb
    net/sched: act_simple: fix parsing of TCA_DEF_DATA
    net: fddi: fix a possible null-ptr-deref
    net: aquantia: fix unsigned numvecs comparison with less than zero
    net: stmmac: fix build failure due to missing COMMON_CLK dependency
    bpfilter: fix race in pipe access
    bpf, xdp: fix crash in xdp_umem_unaccount_pages
    xsk: Fix umem fill/completion queue mmap on 32-bit
    tools/bpf: fix selftest get_cgroup_id_user
    bpfilter: fix OUTPUT_FORMAT
    umh: fix race condition
    net: mscc: ocelot: Fix uninitialized error in ocelot_netdevice_event()
    bonding: re-evaluate force_primary when the primary slave name changes
    ip_tunnel: Fix name string concatenate in __ip_tunnel_create()
    hv_netvsc: Fix a network regression after ifdown/ifup
    ...

    Linus Torvalds
     
  • Pull SCSI updates from James Bottomley:
    "This is mostly updates to the usual drivers: ufs, qedf, mpt3sas, lpfc,
    xfcp, hisi_sas, cxlflash, qla2xxx.

    In the absence of Nic, we're also taking target updates which are
    mostly minor except for the tcmu refactor.

    The only real core change to worry about is the removal of high page
    bouncing (in sas, storvsc and iscsi). This has been well tested and no
    problems have shown up so far"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (268 commits)
    scsi: lpfc: update driver version to 12.0.0.4
    scsi: lpfc: Fix port initialization failure.
    scsi: lpfc: Fix 16gb hbas failing cq create.
    scsi: lpfc: Fix crash in blk_mq layer when executing modprobe -r lpfc
    scsi: lpfc: correct oversubscription of nvme io requests for an adapter
    scsi: lpfc: Fix MDS diagnostics failure (Rx < Tx)
    scsi: hisi_sas: Mark PHY as in reset for nexus reset
    scsi: hisi_sas: Fix return value when get_free_slot() failed
    scsi: hisi_sas: Terminate STP reject quickly for v2 hw
    scsi: hisi_sas: Add v2 hw force PHY function for internal ATA command
    scsi: hisi_sas: Include TMF elements in struct hisi_sas_slot
    scsi: hisi_sas: Try wait commands before before controller reset
    scsi: hisi_sas: Init disks after controller reset
    scsi: hisi_sas: Create a scsi_host_template per HW module
    scsi: hisi_sas: Reset disks when discovered
    scsi: hisi_sas: Add LED feature for v3 hw
    scsi: hisi_sas: Change common allocation mode of device id
    scsi: hisi_sas: change slot index allocation mode
    scsi: hisi_sas: Introduce hisi_sas_phy_set_linkrate()
    scsi: hisi_sas: fix a typo in hisi_sas_task_prep()
    ...

    Linus Torvalds
     

08 Jun, 2018

1 commit

  • Recently people reported the NIC stops working after
    "ifdown eth0; ifup eth0". It turns out in this case the TX queues are not
    enabled, after the refactoring of the common detach logic: when the NIC
    has sub-channels, usually we enable all the TX queues after all
    sub-channels are set up: see rndis_set_subchannel() ->
    netif_device_attach(), but in the case of "ifdown eth0; ifup eth0" where
    the number of channels doesn't change, we also must make sure the TX queues
    are enabled. The patch fixes the regression.

    Fixes: 7b2ee50c0cd5 ("hv_netvsc: common detach logic")
    Signed-off-by: Dexuan Cui
    Cc: Stephen Hemminger
    Cc: K. Y. Srinivasan
    Cc: Haiyang Zhang
    Signed-off-by: David S. Miller

    Dexuan Cui
     

03 Jun, 2018

1 commit

  • Fix to return a negative error code from the failover register fail
    error handling case instead of 0, as done elsewhere in this function.

    Fixes: 1ff78076d8dd ("netvsc: refactor notifier/event handling code to use the failover framework")
    Signed-off-by: Wei Yongjun
    Signed-off-by: David S. Miller

    Wei Yongjun
     

29 May, 2018

1 commit


25 May, 2018

1 commit

  • If the guest network adapter is not configured with DeviceNaming
    enabled on the host, then the query for friendly name will return
    success but with a zero length name. Which then leads to a garbage value
    (stack contents) for ifalias.

    Fix is simple, just don't set name if host doesn't return it.

    Fixes: 0fe554a46a0f ("hv_netvsc: propogate Hyper-V friendly name into interface alias")
    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

24 May, 2018

1 commit