Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90ad1841 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files
David writes:
  "Networking

   1) RXRPC receive path fixes from David Howells.

   2) Re-export __skb_recv_udp(), from Jiri Kosina.

   3) Fix refcounting in u32 classificer, from Al Viro.

   4) Userspace netlink ABI fixes from Eugene Syromiatnikov.

   5) Don't double iounmap on rmmod in ena driver, from Arthur
      Kiyanovski.

   6) Fix devlink string attribute handling, we must pull a copy into a
      kernel buffer if the lifetime extends past the netlink request.
      From Moshe Shemesh.

   7) Fix hangs in RDS, from Ka-Cheong Poon.

   8) Fix recursive locking lockdep warnings in tipc, from Ying Xue.

   9) Clear RX irq correctly in socionext, from Ilias Apalodimas.

   10) bcm_sf2 fixes from Florian Fainelli."

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (38 commits)
  net: dsa: bcm_sf2: Call setup during switch resume
  net: dsa: bcm_sf2: Fix unbind ordering
  net: phy: sfp: remove sfp_mutex's definition
  r8169: set RX_MULTI_EN bit in RxConfig for 8168F-family chips
  net: socionext: clear rx irq correctly
  net/mlx4_core: Fix warnings during boot on driverinit param set failures
  tipc: eliminate possible recursive locking detected by LOCKDEP
  selftests: udpgso_bench.sh explicitly requires bash
  selftests: rtnetlink.sh explicitly requires bash.
  qmi_wwan: Added support for Gemalto's Cinterion ALASxx WWAN interface
  tipc: queue socket protocol error messages into socket receive buffer
  tipc: set link tolerance correctly in broadcast link
  net: ipv4: don't let PMTU updates increase route MTU
  net: ipv4: update fnhe_pmtu when first hop's MTU changes
  net/ipv6: stop leaking percpu memory in fib6 info
  rds: RDS (tcp) hangs on sendto() to unresponding address
  net: make skb_partial_csum_set() more robust against overflows
  devlink: Add helper function for safely copy string param
  devlink: Fix param cmode driverinit for string type
  devlink: Fix param set handling for string type
  ...
parents 0778a9f2 6b9bab55
Loading
Loading
Loading
Loading
+3 −11
Original line number Original line Diff line number Diff line
@@ -703,7 +703,6 @@ static int bcm_sf2_sw_suspend(struct dsa_switch *ds)
static int bcm_sf2_sw_resume(struct dsa_switch *ds)
static int bcm_sf2_sw_resume(struct dsa_switch *ds)
{
{
	struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
	struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
	unsigned int port;
	int ret;
	int ret;


	ret = bcm_sf2_sw_rst(priv);
	ret = bcm_sf2_sw_rst(priv);
@@ -715,14 +714,7 @@ static int bcm_sf2_sw_resume(struct dsa_switch *ds)
	if (priv->hw_params.num_gphy == 1)
	if (priv->hw_params.num_gphy == 1)
		bcm_sf2_gphy_enable_set(ds, true);
		bcm_sf2_gphy_enable_set(ds, true);


	for (port = 0; port < DSA_MAX_PORTS; port++) {
	ds->ops->setup(ds);
		if (dsa_is_user_port(ds, port))
			bcm_sf2_port_setup(ds, port, NULL);
		else if (dsa_is_cpu_port(ds, port))
			bcm_sf2_imp_setup(ds, port);
	}

	bcm_sf2_enable_acb(ds);


	return 0;
	return 0;
}
}
@@ -1173,10 +1165,10 @@ static int bcm_sf2_sw_remove(struct platform_device *pdev)
{
{
	struct bcm_sf2_priv *priv = platform_get_drvdata(pdev);
	struct bcm_sf2_priv *priv = platform_get_drvdata(pdev);


	/* Disable all ports and interrupts */
	priv->wol_ports_mask = 0;
	priv->wol_ports_mask = 0;
	bcm_sf2_sw_suspend(priv->dev->ds);
	dsa_unregister_switch(priv->dev->ds);
	dsa_unregister_switch(priv->dev->ds);
	/* Disable all ports and interrupts */
	bcm_sf2_sw_suspend(priv->dev->ds);
	bcm_sf2_mdio_unregister(priv);
	bcm_sf2_mdio_unregister(priv);


	return 0;
	return 0;
+4 −4
Original line number Original line Diff line number Diff line
@@ -245,11 +245,11 @@ static inline void ena_com_rx_set_flags(struct ena_com_rx_ctx *ena_rx_ctx,
		(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_MASK) >>
		(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_MASK) >>
		ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_SHIFT;
		ENA_ETH_IO_RX_CDESC_BASE_L4_PROTO_IDX_SHIFT;
	ena_rx_ctx->l3_csum_err =
	ena_rx_ctx->l3_csum_err =
		(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_MASK) >>
		!!((cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_MASK) >>
		ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_SHIFT;
		ENA_ETH_IO_RX_CDESC_BASE_L3_CSUM_ERR_SHIFT);
	ena_rx_ctx->l4_csum_err =
	ena_rx_ctx->l4_csum_err =
		(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK) >>
		!!((cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_MASK) >>
		ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_SHIFT;
		ENA_ETH_IO_RX_CDESC_BASE_L4_CSUM_ERR_SHIFT);
	ena_rx_ctx->hash = cdesc->hash;
	ena_rx_ctx->hash = cdesc->hash;
	ena_rx_ctx->frag =
	ena_rx_ctx->frag =
		(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK) >>
		(cdesc->status & ENA_ETH_IO_RX_CDESC_BASE_IPV4_FRAG_MASK) >>
+12 −10
Original line number Original line Diff line number Diff line
@@ -1575,8 +1575,6 @@ static int ena_up_complete(struct ena_adapter *adapter)
	if (rc)
	if (rc)
		return rc;
		return rc;


	ena_init_napi(adapter);

	ena_change_mtu(adapter->netdev, adapter->netdev->mtu);
	ena_change_mtu(adapter->netdev, adapter->netdev->mtu);


	ena_refill_all_rx_bufs(adapter);
	ena_refill_all_rx_bufs(adapter);
@@ -1730,6 +1728,13 @@ static int ena_up(struct ena_adapter *adapter)


	ena_setup_io_intr(adapter);
	ena_setup_io_intr(adapter);


	/* napi poll functions should be initialized before running
	 * request_irq(), to handle a rare condition where there is a pending
	 * interrupt, causing the ISR to fire immediately while the poll
	 * function wasn't set yet, causing a null dereference
	 */
	ena_init_napi(adapter);

	rc = ena_request_io_irq(adapter);
	rc = ena_request_io_irq(adapter);
	if (rc)
	if (rc)
		goto err_req_irq;
		goto err_req_irq;
@@ -2619,7 +2624,11 @@ static int ena_restore_device(struct ena_adapter *adapter)
	ena_free_mgmnt_irq(adapter);
	ena_free_mgmnt_irq(adapter);
	ena_disable_msix(adapter);
	ena_disable_msix(adapter);
err_device_destroy:
err_device_destroy:
	ena_com_abort_admin_commands(ena_dev);
	ena_com_wait_for_abort_completion(ena_dev);
	ena_com_admin_destroy(ena_dev);
	ena_com_admin_destroy(ena_dev);
	ena_com_mmio_reg_read_request_destroy(ena_dev);
	ena_com_dev_reset(ena_dev, ENA_REGS_RESET_DRIVER_INVALID_STATE);
err:
err:
	clear_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags);
	clear_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags);
	clear_bit(ENA_FLAG_ONGOING_RESET, &adapter->flags);
	clear_bit(ENA_FLAG_ONGOING_RESET, &adapter->flags);
@@ -3099,15 +3108,8 @@ static int ena_rss_init_default(struct ena_adapter *adapter)


static void ena_release_bars(struct ena_com_dev *ena_dev, struct pci_dev *pdev)
static void ena_release_bars(struct ena_com_dev *ena_dev, struct pci_dev *pdev)
{
{
	int release_bars;
	int release_bars = pci_select_bars(pdev, IORESOURCE_MEM) & ENA_BAR_MASK;

	if (ena_dev->mem_bar)
		devm_iounmap(&pdev->dev, ena_dev->mem_bar);

	if (ena_dev->reg_bar)
		devm_iounmap(&pdev->dev, ena_dev->reg_bar);


	release_bars = pci_select_bars(pdev, IORESOURCE_MEM) & ENA_BAR_MASK;
	pci_release_selected_regions(pdev, release_bars);
	pci_release_selected_regions(pdev, release_bars);
}
}


+15 −28
Original line number Original line Diff line number Diff line
@@ -260,45 +260,32 @@ static const struct devlink_param mlx4_devlink_params[] = {
			     NULL, NULL, NULL),
			     NULL, NULL, NULL),
};
};


static void mlx4_devlink_set_init_value(struct devlink *devlink, u32 param_id,
					union devlink_param_value init_val)
{
	struct mlx4_priv *priv = devlink_priv(devlink);
	struct mlx4_dev *dev = &priv->dev;
	int err;

	err = devlink_param_driverinit_value_set(devlink, param_id, init_val);
	if (err)
		mlx4_warn(dev,
			  "devlink set parameter %u value failed (err = %d)",
			  param_id, err);
}

static void mlx4_devlink_set_params_init_values(struct devlink *devlink)
static void mlx4_devlink_set_params_init_values(struct devlink *devlink)
{
{
	union devlink_param_value value;
	union devlink_param_value value;


	value.vbool = !!mlx4_internal_err_reset;
	value.vbool = !!mlx4_internal_err_reset;
	mlx4_devlink_set_init_value(devlink,
	devlink_param_driverinit_value_set(devlink,
					   DEVLINK_PARAM_GENERIC_ID_INT_ERR_RESET,
					   DEVLINK_PARAM_GENERIC_ID_INT_ERR_RESET,
					   value);
					   value);


	value.vu32 = 1UL << log_num_mac;
	value.vu32 = 1UL << log_num_mac;
	mlx4_devlink_set_init_value(devlink,
	devlink_param_driverinit_value_set(devlink,
				    DEVLINK_PARAM_GENERIC_ID_MAX_MACS, value);
					   DEVLINK_PARAM_GENERIC_ID_MAX_MACS,
					   value);


	value.vbool = enable_64b_cqe_eqe;
	value.vbool = enable_64b_cqe_eqe;
	mlx4_devlink_set_init_value(devlink,
	devlink_param_driverinit_value_set(devlink,
					   MLX4_DEVLINK_PARAM_ID_ENABLE_64B_CQE_EQE,
					   MLX4_DEVLINK_PARAM_ID_ENABLE_64B_CQE_EQE,
					   value);
					   value);


	value.vbool = enable_4k_uar;
	value.vbool = enable_4k_uar;
	mlx4_devlink_set_init_value(devlink,
	devlink_param_driverinit_value_set(devlink,
					   MLX4_DEVLINK_PARAM_ID_ENABLE_4K_UAR,
					   MLX4_DEVLINK_PARAM_ID_ENABLE_4K_UAR,
					   value);
					   value);


	value.vbool = false;
	value.vbool = false;
	mlx4_devlink_set_init_value(devlink,
	devlink_param_driverinit_value_set(devlink,
					   DEVLINK_PARAM_GENERIC_ID_REGION_SNAPSHOT,
					   DEVLINK_PARAM_GENERIC_ID_REGION_SNAPSHOT,
					   value);
					   value);
}
}
+2 −2
Original line number Original line Diff line number Diff line
@@ -4282,8 +4282,8 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp)
		RTL_W32(tp, RxConfig, RX_FIFO_THRESH | RX_DMA_BURST);
		RTL_W32(tp, RxConfig, RX_FIFO_THRESH | RX_DMA_BURST);
		break;
		break;
	case RTL_GIGA_MAC_VER_18 ... RTL_GIGA_MAC_VER_24:
	case RTL_GIGA_MAC_VER_18 ... RTL_GIGA_MAC_VER_24:
	case RTL_GIGA_MAC_VER_34:
	case RTL_GIGA_MAC_VER_34 ... RTL_GIGA_MAC_VER_36:
	case RTL_GIGA_MAC_VER_35:
	case RTL_GIGA_MAC_VER_38:
		RTL_W32(tp, RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST);
		RTL_W32(tp, RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST);
		break;
		break;
	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_51:
	case RTL_GIGA_MAC_VER_40 ... RTL_GIGA_MAC_VER_51:
Loading