[PULL v1][Azure] Hyper-V backport from upstream
Marcelo Cerri
marcelo.cerri at canonical.com
Thu May 18 22:57:01 UTC 2017
BugLink: https://bugs.launchpad.net/bugs/1690177
That's the backport from upstream for the Hyper-V drivers as requested by
lp#1690177.
A few notes on the changes below:
1. I didn't apply the following commit because it doesn't seem to be necessary
and it affects a large number of files:
68db0cf10678630d286f4bbbbdfa102951a35faa sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h>
2. There are 3 commits with trivial conflicts:
f2ba2c6cbc39036bae82a1c2ffaf8fbd2faaa484 netvsc: remove no longer needed receive staging buffers
d5b882cc6fd355aa34b3cec46edefe45999dc605 vmbus: introduce in-place packet iterator
b5ce98f766bb3ad24458f12bcce6e5c897a97099 net: make ndo_get_stats64 a void function
The first 2 conflicts were caused by 2 parallel branches in upstream and the
later one was caused by previous commits that we picked for the zesty kernel.
3. The following commit makes use of linux/refcount.h that is indirectly
included via linux/kref.h:
495c9a03c258267211ed5aa972ea1f51fca1eb1d netvsc: use refcount_t for keeping track of sub channels
To avoid the backport of a large set of changes for kref.h, I decided to
include refcount.h where it is needed in the following commit:
e53b7f0299c836b7cf683f1cfed81ba16b251545 UBUNTU: SAUCE: include refcount.h in hyperv_net.h
---
The following changes since commit b18b5329c7081f661e161ab9330887006c8d18e7:
UBUNTU: Ubuntu-azure-4.10.0-1005.5 (2017-05-15 22:49:17 -0300)
are available in the git repository at:
https://git.launchpad.net/~mhcerri/ubuntu/+source/linux/+git/azure lp1690177-hyperv-backport
for you to fetch changes up to 87eed74fb30f0fe74ecab0bed78206885ca2bb3b:
netvsc: Deal with rescinded channels correctly (2017-05-18 17:40:01 -0300)
----------------------------------------------------------------
Cathy Avery (2):
scsi: scsi_transport_fc: Add dummy initiator role to rport
scsi: storvsc: Add support for FC rport.
Christoph Hellwig (3):
scsi: mvumi: remove fake transport template
scsi: libsas: remove sas_scsi_timed_out
scsi: remove eh_timed_out methods in the transport template
David Windsor (1):
locking/refcount: Add refcount_t API kernel-doc comments
Dexuan Cui (1):
netvsc: fix use-after-free in netvsc_change_mtu()
Elena Reshetova (2):
locking/refcounts: Add missing kernel.h header to have UINT_MAX defined
PCI: hv: Convert hv_pci_dev.refs from atomic_t to refcount_t
Guenter Roeck (1):
Input: serio - drop unnecessary calls to device_init_wakeup
Haiyang Zhang (1):
hv_netvsc: Fix the queue index computation in forwarding case
K. Y. Srinivasan (6):
PCI: hv: Specify CPU_AFFINITY_ALL for MSI affinity when >= 32 CPUs
PCI: hv: Allocate interrupt descriptors with GFP_ATOMIC
Drivers: hv: Fix a typo
Drivers: hv: Base autoeoi enablement based on hypervisor hints
Drivers: hv: Issue explicit EOI when autoeoi is not enabled
netvsc: Deal with rescinded channels correctly
Marcelo Henrique Cerri (2):
UBUNTU: Start new release
UBUNTU: SAUCE: include refcount.h in hyperv_net.h
Masahiro Yamada (1):
scripts/spelling.txt: add "intialization" pattern and fix typo instances
Miguel Bernal Marin (2):
scsi: storvsc: Prefer kcalloc over kzalloc with multiply
scsi: storvsc: remove return at end of void function
Mintz, Yuval (7):
qed*: Update to dual-license
qede: Break datapath logic into its own file
qede: Split filtering logic to its own file
qed*: Change maximal number of queues
qede: Postpone reallocation until NAPI end
qed*: RSS indirection based on queue-handles
qed*: Add support for ndo_set_vf_trust
Parav Pandit (1):
net-next: treewide use is_vlan_dev() helper function.
Peter Zijlstra (2):
refcount_t: Introduce a special purpose refcount type
locking/refcounts: Out-of-line everything
Philippe Reynes (1):
net: hyperv: use new api ethtool_{get|set}_link_ksettings
Simon Xiao (2):
netvsc: report per-channel stats in ethtool statistics
hv_netvsc: change netvsc device default duplex to FULL
Stephen Hemminger (18):
vmbus: use kernel bitops for traversing interrupt mask
vmbus: drop no longer used kick_q argument
vmbus: remove no longer used signal_policy
vmbus: remove unused kickq argument to sendpacket
vmbus: put related per-cpu variable together
vmbus: callback is in softirq not workqueue
vmbus: change to per channel tasklet
vmbus: add direct isr callback mode
vmbus: expose hv_begin/end_read
vmbus: remove conditional locking of vmbus_write
vmbus: constify parameters where possible
vmbus: only reschedule tasklet if time limit exceeded
vmbus: remove useless return's
vmbus: remove unnecessary initialization
vmbus: fix spelling errors
vmbus: make channel_message table constant
vmbus: cleanup header file style
vmbus: expose debug info for drivers
stephen hemminger (37):
netvsc: negotiate checksum and segmentation parameters
netvsc: report number of rx queues in ethtool
netvsc: add ethtool ops to get/set RSS key
netvsc: allow more flexible setting of number of channels
netvsc: remove unused variables
netvsc: remove no longer needed receive staging buffers
netvsc: enhance transmit select_queue
netvsc: group all per-channel state together
netvsc: optimize receive path
netvsc: don't pass void * to internal device_add
netvsc: simplify rndis_filter_remove
netvsc: eliminate per-device outstanding send counter
netvsc: account for packets/bytes transmitted after completion
netvsc: call netif_receive_skb
netvsc: handle select_queue when device is being removed
netvsc: simplify get next send section
netvsc: fix calculation of available send sections
netvsc: don't overload variable in same function
vmbus: introduce in-place packet iterator
netvsc: implement NAPI
netvsc: replace netdev_alloc_skb_ip_align with napi_alloc_skb
netvsc: remove unused #define
netvsc: need napi scheduled during removal
netvsc: avoid race with callback
netvsc: add comments about callback's and NAPI
netvsc: fix NAPI performance regression
netvsc: allow get/set of RSS indirection table
netvsc: handle offline mtu and channel change
netvsc: change max channel calculation
net: make ndo_get_stats64 a void function
netvsc: enable GRO
netvsc: use RCU to protect inner device structure
netvsc: uses RCU instead of removal flag
netvsc: use refcount_t for keeping track of sub channels
netvsc: remove unnecessary lock on shutdown
netvsc: eliminate unnecessary skb == NULL checks
netvsc: fix and cleanup rndis_filter_set_packet_filter
arch/arm/mach-omap2/omap_twl.c | 2 +-
arch/x86/include/uapi/asm/hyperv.h | 7 +-
arch/x86/kernel/cpu/mshyperv.c | 3 +
debian.azure/abi/4.10.0-1004.4/abiname | 1 -
debian.azure/abi/4.10.0-1005.5/abiname | 1 +
.../{4.10.0-1004.4 => 4.10.0-1005.5}/amd64/azure | 82 +-
.../amd64/azure.compiler | 0
.../amd64/azure.modules | 0
.../abi/{4.10.0-1004.4 => 4.10.0-1005.5}/fwinfo | 0
debian.azure/changelog | 8 +
drivers/acpi/spcr.c | 2 +-
drivers/ata/libata-eh.c | 1 +
drivers/ata/libata-transport.c | 1 -
drivers/ata/libata.h | 1 -
drivers/firewire/core-device.c | 4 +-
drivers/hv/channel.c | 57 +-
drivers/hv/channel_mgmt.c | 89 +-
drivers/hv/connection.c | 169 +-
drivers/hv/hv.c | 129 +-
drivers/hv/hv_balloon.c | 2 -
drivers/hv/hv_fcopy.c | 2 -
drivers/hv/hv_kvp.c | 12 +-
drivers/hv/hv_snapshot.c | 2 -
drivers/hv/hv_util.c | 3 +-
drivers/hv/hyperv_vmbus.h | 105 +-
drivers/hv/ring_buffer.c | 165 +-
drivers/hv/vmbus_drv.c | 119 +-
drivers/infiniband/core/cma.c | 6 +-
drivers/infiniband/sw/rxe/rxe_net.c | 2 +-
drivers/infiniband/ulp/iser/iscsi_iser.c | 1 +
drivers/infiniband/ulp/srp/ib_srp.c | 1 +
drivers/input/serio/hyperv-keyboard.c | 1 -
drivers/message/fusion/mptfc.c | 1 +
drivers/message/fusion/mptsas.c | 2 +-
drivers/mmc/host/mmci_qcom_dml.c | 2 +-
drivers/net/bonding/bond_main.c | 10 +-
drivers/net/dummy.c | 5 +-
drivers/net/ethernet/alacritech/slicoss.c | 6 +-
drivers/net/ethernet/amazon/ena/ena_netdev.c | 10 +-
drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 6 +-
drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 4 +-
drivers/net/ethernet/atheros/alx/main.c | 6 +-
drivers/net/ethernet/broadcom/b44.c | 5 +-
drivers/net/ethernet/broadcom/bnx2.c | 5 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 6 +-
drivers/net/ethernet/broadcom/cnic.c | 2 +-
drivers/net/ethernet/broadcom/tg3.c | 8 +-
drivers/net/ethernet/brocade/bna/bnad.c | 6 +-
drivers/net/ethernet/calxeda/xgmac.c | 5 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 5 +-
drivers/net/ethernet/chelsio/cxgb3/l2t.c | 2 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 11 +-
drivers/net/ethernet/chelsio/cxgb4/l2t.c | 2 +-
drivers/net/ethernet/cisco/enic/enic_main.c | 8 +-
drivers/net/ethernet/ec_bhf.c | 4 +-
drivers/net/ethernet/emulex/benet/be_main.c | 5 +-
drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 6 +-
drivers/net/ethernet/hisilicon/hns/hns_enet.c | 6 +-
drivers/net/ethernet/ibm/ehea/ehea_main.c | 5 +-
drivers/net/ethernet/intel/e1000e/e1000.h | 4 +-
drivers/net/ethernet/intel/e1000e/netdev.c | 5 +-
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c | 6 +-
drivers/net/ethernet/intel/i40e/i40e.h | 5 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 18 +-
drivers/net/ethernet/intel/igb/igb_main.c | 10 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 6 +-
drivers/net/ethernet/marvell/mvneta.c | 4 +-
drivers/net/ethernet/marvell/mvpp2.c | 4 +-
drivers/net/ethernet/marvell/sky2.c | 6 +-
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 6 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 4 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 3 +-
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3 +-
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 4 +-
drivers/net/ethernet/mellanox/mlxsw/switchx2.c | 3 +-
drivers/net/ethernet/myricom/myri10ge/myri10ge.c | 9 +-
drivers/net/ethernet/neterion/vxge/vxge-main.c | 4 +-
.../net/ethernet/netronome/nfp/nfp_net_common.c | 6 +-
drivers/net/ethernet/nvidia/forcedeth.c | 4 +-
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 18 +-
drivers/net/ethernet/qlogic/qed/qed.h | 32 +-
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_cxt.h | 34 +-
drivers/net/ethernet/qlogic/qed/qed_dcbx.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_dcbx.h | 32 +-
drivers/net/ethernet/qlogic/qed/qed_dev.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_dev_api.h | 34 +-
drivers/net/ethernet/qlogic/qed/qed_hsi.h | 32 +-
drivers/net/ethernet/qlogic/qed/qed_hw.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_hw.h | 32 +-
.../net/ethernet/qlogic/qed/qed_init_fw_funcs.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_init_ops.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_init_ops.h | 34 +-
drivers/net/ethernet/qlogic/qed/qed_int.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_int.h | 34 +-
drivers/net/ethernet/qlogic/qed/qed_iscsi.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_iscsi.h | 32 +-
drivers/net/ethernet/qlogic/qed/qed_l2.c | 296 ++-
drivers/net/ethernet/qlogic/qed/qed_l2.h | 60 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.c | 31 +-
drivers/net/ethernet/qlogic/qed/qed_ll2.h | 31 +-
drivers/net/ethernet/qlogic/qed/qed_main.c | 43 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_mcp.h | 34 +-
drivers/net/ethernet/qlogic/qed/qed_ooo.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_ooo.h | 32 +-
drivers/net/ethernet/qlogic/qed/qed_reg_addr.h | 32 +-
drivers/net/ethernet/qlogic/qed/qed_roce.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_roce.h | 2 +-
drivers/net/ethernet/qlogic/qed/qed_selftest.c | 32 +
drivers/net/ethernet/qlogic/qed/qed_sp.h | 34 +-
drivers/net/ethernet/qlogic/qed/qed_sp_commands.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_spq.c | 32 +-
drivers/net/ethernet/qlogic/qed/qed_sriov.c | 242 +-
drivers/net/ethernet/qlogic/qed/qed_sriov.h | 41 +-
drivers/net/ethernet/qlogic/qed/qed_vf.c | 44 +-
drivers/net/ethernet/qlogic/qed/qed_vf.h | 32 +-
drivers/net/ethernet/qlogic/qede/Makefile | 2 +-
drivers/net/ethernet/qlogic/qede/qede.h | 81 +-
drivers/net/ethernet/qlogic/qede/qede_ethtool.c | 114 +-
drivers/net/ethernet/qlogic/qede/qede_filter.c | 759 ++++++
drivers/net/ethernet/qlogic/qede/qede_fp.c | 1689 +++++++++++++
drivers/net/ethernet/qlogic/qede/qede_main.c | 2622 ++------------------
drivers/net/ethernet/qlogic/qede/qede_roce.c | 2 +-
drivers/net/ethernet/qlogic/qlcnic/qlcnic_main.c | 4 +-
drivers/net/ethernet/qualcomm/emac/emac.c | 6 +-
drivers/net/ethernet/realtek/8139too.c | 9 +-
drivers/net/ethernet/realtek/r8169.c | 4 +-
drivers/net/ethernet/samsung/sxgbe/sxgbe_main.c | 8 +-
drivers/net/ethernet/sfc/efx.c | 6 +-
drivers/net/ethernet/sfc/falcon/efx.c | 6 +-
drivers/net/ethernet/sun/niu.c | 6 +-
drivers/net/ethernet/synopsys/dwc_eth_qos.c | 4 +-
drivers/net/ethernet/tile/tilepro.c | 4 +-
drivers/net/ethernet/via/via-rhine.c | 8 +-
drivers/net/fjes/fjes_main.c | 7 +-
drivers/net/hyperv/hyperv_net.h | 242 +-
drivers/net/hyperv/netvsc.c | 523 ++--
drivers/net/hyperv/netvsc_drv.c | 715 +++---
drivers/net/hyperv/rndis_filter.c | 428 ++--
drivers/net/ifb.c | 6 +-
drivers/net/ipvlan/ipvlan_main.c | 5 +-
drivers/net/loopback.c | 5 +-
drivers/net/macsec.c | 8 +-
drivers/net/macvlan.c | 5 +-
drivers/net/nlmon.c | 4 +-
drivers/net/ppp/ppp_generic.c | 4 +-
drivers/net/slip/slip.c | 3 +-
drivers/net/team/team.c | 3 +-
drivers/net/tun.c | 3 +-
drivers/net/veth.c | 6 +-
drivers/net/virtio_net.c | 6 +-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 4 +-
drivers/net/vmxnet3/vmxnet3_int.h | 4 +-
drivers/net/vrf.c | 5 +-
drivers/net/wireless/intel/ipw2x00/ipw2100.c | 4 +-
drivers/net/wireless/intel/ipw2x00/ipw2200.c | 2 +-
drivers/net/wireless/ti/wlcore/init.c | 2 +-
drivers/net/xen-netfront.c | 6 +-
drivers/pci/host/pci-hyperv.c | 22 +-
drivers/power/avs/smartreflex.c | 6 +-
drivers/s390/scsi/zfcp_scsi.c | 1 +
drivers/scsi/be2iscsi/be_main.c | 1 +
drivers/scsi/bfa/bfad_im.c | 2 +
drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 7 +-
drivers/scsi/bnx2i/bnx2i_iscsi.c | 1 +
drivers/scsi/csiostor/csio_scsi.c | 2 +
drivers/scsi/cxgbi/cxgb3i/cxgb3i.c | 1 +
drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 1 +
drivers/scsi/cxgbi/libcxgbi.c | 6 +-
drivers/scsi/fcoe/fcoe.c | 14 +-
drivers/scsi/fnic/fnic_main.c | 1 +
drivers/scsi/ibmvscsi/ibmvfc.c | 1 +
drivers/scsi/ibmvscsi/ibmvscsi.c | 1 +
drivers/scsi/ipr.c | 2 +-
drivers/scsi/iscsi_tcp.c | 1 +
drivers/scsi/libiscsi.c | 5 +-
drivers/scsi/libsas/sas_init.c | 1 -
drivers/scsi/libsas/sas_internal.h | 2 -
drivers/scsi/libsas/sas_scsi_host.c | 7 -
drivers/scsi/lpfc/lpfc_scsi.c | 2 +
drivers/scsi/lpfc/lpfc_sli.c | 14 +-
drivers/scsi/mvumi.c | 6 +-
drivers/scsi/qedi/qedi_iscsi.c | 1 +
drivers/scsi/qla2xxx/qla_os.c | 1 +
drivers/scsi/scsi_error.c | 4 +-
drivers/scsi/scsi_transport_fc.c | 19 +-
drivers/scsi/scsi_transport_sas.c | 2 +-
drivers/scsi/scsi_transport_srp.c | 5 +-
drivers/scsi/storvsc_drv.c | 34 +-
drivers/staging/netlogic/xlr_net.c | 10 +-
drivers/uio/uio_hv_generic.c | 2 +-
drivers/usb/gadget/udc/fsl_udc_core.c | 4 +-
include/linux/hyperv.h | 233 +-
include/linux/libata.h | 2 +
include/linux/netdevice.h | 8 +-
include/linux/qed/common_hsi.h | 33 +-
include/linux/qed/eth_common.h | 32 +-
include/linux/qed/iscsi_common.h | 32 +-
include/linux/qed/qed_chain.h | 34 +-
include/linux/qed/qed_eth_if.h | 34 +-
include/linux/qed/qed_if.h | 35 +-
include/linux/qed/qed_iov_if.h | 34 +-
include/linux/qed/qed_iscsi_if.h | 32 +-
include/linux/qed/qed_ll2_if.h | 31 +-
include/linux/qed/qed_roce_if.h | 2 +-
include/linux/qed/qede_roce.h | 2 +-
include/linux/qed/rdma_common.h | 32 +-
include/linux/qed/roce_common.h | 32 +-
include/linux/qed/storage_common.h | 32 +-
include/linux/qed/tcp_common.h | 32 +-
include/linux/refcount.h | 61 +
include/net/ip_tunnels.h | 4 +-
include/rdma/ib_addr.h | 6 +-
include/scsi/libiscsi.h | 1 +
include/scsi/scsi_transport.h | 11 -
include/scsi/scsi_transport_fc.h | 2 +
include/scsi/scsi_transport_srp.h | 1 +
lib/Makefile | 2 +-
lib/refcount.c | 365 +++
net/8021q/vlan_dev.c | 5 +-
net/bridge/br_device.c | 6 +-
net/hsr/hsr_slave.c | 3 +-
net/ipv4/ip_tunnel_core.c | 6 +-
net/l2tp/l2tp_eth.c | 6 +-
net/mac80211/iface.c | 4 +-
net/openvswitch/vport-internal_dev.c | 4 +-
net/sched/sch_teql.c | 5 +-
scripts/spelling.txt | 1 +
sound/soc/qcom/lpass.h | 2 +-
sound/soc/soc-topology.c | 4 +-
232 files changed, 6908 insertions(+), 4714 deletions(-)
delete mode 100644 debian.azure/abi/4.10.0-1004.4/abiname
create mode 100644 debian.azure/abi/4.10.0-1005.5/abiname
rename debian.azure/abi/{4.10.0-1004.4 => 4.10.0-1005.5}/amd64/azure (99%)
rename debian.azure/abi/{4.10.0-1004.4 => 4.10.0-1005.5}/amd64/azure.compiler (100%)
rename debian.azure/abi/{4.10.0-1004.4 => 4.10.0-1005.5}/amd64/azure.modules (100%)
rename debian.azure/abi/{4.10.0-1004.4 => 4.10.0-1005.5}/fwinfo (100%)
create mode 100644 drivers/net/ethernet/qlogic/qede/qede_filter.c
create mode 100644 drivers/net/ethernet/qlogic/qede/qede_fp.c
create mode 100644 include/linux/refcount.h
create mode 100644 lib/refcount.c
--
Regards,
Marcelo
More information about the kernel-team
mailing list