Message ID | 20170525115005.GE3277@gallifrey |
---|---|
State | New |
Headers | show |
On 25.05.2017 13:50, Marcelo Cerri wrote:
> https://git.launchpad.net/~mhcerri/ubuntu/+source/linux/+git/azure lp1690177-hyperv-backport_v2
Series applies cleanly, custom branch, testable in specific environment.
On 25/05/17 12:50, Marcelo Cerri wrote: > BugLink: https://bugs.launchpad.net/bugs/1690177 > > v1 caused some PCI issues and the following commits were dropped: > > 24196f0c7d4bba093dfa8074507f31509970319f PCI: hv: Convert hv_pci_dev.refs from atomic_t to refcount_t > 59c58ceeea9cdc6144d7b0303753e6bd26d87455 PCI: hv: Allocate interrupt descriptors with GFP_ATOMI > > --- > v1: > > 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_v2 > > for you to fetch changes up to 99c53d1e9e293c4fa2335d4e04b26d38d4146576: > > netvsc: Deal with rescinded channels correctly (2017-05-22 10:02:52 -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 (1): > locking/refcounts: Add missing kernel.h header to have UINT_MAX defined > > 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 (5): > PCI: hv: Specify CPU_AFFINITY_ALL for MSI affinity when >= 32 CPUs > 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 | 11 +- > 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, 6902 insertions(+), 4709 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 > > > This is testable and on a custom branch so the regression potential is limited, so.. Acked-by: Colin Ian King <colin.king@canonical.com>