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

Commit c44eaf41 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (34 commits)
  net: Add support for SMSC LAN9530, LAN9730 and LAN89530
  mlx4_en: Restoring RX buffer pointer in case of failure
  mlx4: Sensing link type at device initialization
  ipv4: Fix "Set rt->rt_iif more sanely on output routes."
  MAINTAINERS: add entry for Xen network backend
  be2net: Fix suspend/resume operation
  be2net: Rename some struct members for clarity
  pppoe: drop PPPOX_ZOMBIEs in pppoe_flush_dev
  dsa/mv88e6131: add support for mv88e6085 switch
  ipv6: Enable RFS sk_rxhash tracking for ipv6 sockets (v2)
  be2net: Fix a potential crash during shutdown.
  bna: Fix for handling firmware heartbeat failure
  can: mcp251x: Allow pass IRQ flags through platform data.
  smsc911x: fix mac_lock acquision before calling smsc911x_mac_read
  iwlwifi: accept EEPROM version 0x423 for iwl6000
  rt2x00: fix cancelling uninitialized work
  rtlwifi: Fix some warnings/bugs
  p54usb: IDs for two new devices
  wl12xx: fix potential buffer overflow in testmode nvs push
  zd1211rw: reset rx idle timer from tasklet
  ...
parents 4263a2f1 88edaa41
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -6916,6 +6916,13 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/mjg59/platform-drivers-x86.
S:	Maintained
F:	drivers/platform/x86

XEN NETWORK BACKEND DRIVER
M:	Ian Campbell <ian.campbell@citrix.com>
L:	xen-devel@lists.xensource.com (moderated for non-subscribers)
L:	netdev@vger.kernel.org
S:	Supported
F:	drivers/net/xen-netback/*

XEN PCI SUBSYSTEM
M:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
L:	xen-devel@lists.xensource.com (moderated for non-subscribers)
+2 −2
Original line number Diff line number Diff line
@@ -154,7 +154,7 @@ struct be_eq_obj {
	u16 min_eqd;		/* in usecs */
	u16 max_eqd;		/* in usecs */
	u16 cur_eqd;		/* in usecs */
	u8  msix_vec_idx;
	u8  eq_idx;

	struct napi_struct napi;
};
@@ -291,7 +291,7 @@ struct be_adapter {
	u32 num_rx_qs;
	u32 big_page_size;	/* Compounded page size shared by rx wrbs */

	u8 msix_vec_next_idx;
	u8 eq_next_idx;
	struct be_drv_stats drv_stats;

	struct vlan_group *vlan_grp;
+11 −8
Original line number Diff line number Diff line
@@ -1497,7 +1497,7 @@ static int be_tx_queues_create(struct be_adapter *adapter)
	if (be_cmd_eq_create(adapter, eq, adapter->tx_eq.cur_eqd))
		goto tx_eq_free;

	adapter->tx_eq.msix_vec_idx = adapter->msix_vec_next_idx++;
	adapter->tx_eq.eq_idx = adapter->eq_next_idx++;


	/* Alloc TX eth compl queue */
@@ -1590,7 +1590,7 @@ static int be_rx_queues_create(struct be_adapter *adapter)
		if (rc)
			goto err;

		rxo->rx_eq.msix_vec_idx = adapter->msix_vec_next_idx++;
		rxo->rx_eq.eq_idx = adapter->eq_next_idx++;

		/* CQ */
		cq = &rxo->cq;
@@ -1666,11 +1666,11 @@ static irqreturn_t be_intx(int irq, void *dev)
		if (!isr)
			return IRQ_NONE;

		if ((1 << adapter->tx_eq.msix_vec_idx & isr))
		if ((1 << adapter->tx_eq.eq_idx & isr))
			event_handle(adapter, &adapter->tx_eq);

		for_all_rx_queues(adapter, rxo, i) {
			if ((1 << rxo->rx_eq.msix_vec_idx & isr))
			if ((1 << rxo->rx_eq.eq_idx & isr))
				event_handle(adapter, &rxo->rx_eq);
		}
	}
@@ -1951,7 +1951,7 @@ static void be_sriov_disable(struct be_adapter *adapter)
static inline int be_msix_vec_get(struct be_adapter *adapter,
					struct be_eq_obj *eq_obj)
{
	return adapter->msix_entries[eq_obj->msix_vec_idx].vector;
	return adapter->msix_entries[eq_obj->eq_idx].vector;
}

static int be_request_irq(struct be_adapter *adapter,
@@ -2345,6 +2345,7 @@ static int be_clear(struct be_adapter *adapter)
	be_mcc_queues_destroy(adapter);
	be_rx_queues_destroy(adapter);
	be_tx_queues_destroy(adapter);
	adapter->eq_next_idx = 0;

	if (be_physfn(adapter) && adapter->sriov_enabled)
		for (vf = 0; vf < num_vfs; vf++)
@@ -3141,12 +3142,14 @@ static int be_resume(struct pci_dev *pdev)
static void be_shutdown(struct pci_dev *pdev)
{
	struct be_adapter *adapter = pci_get_drvdata(pdev);
	struct net_device *netdev =  adapter->netdev;

	if (netif_running(netdev))
	if (!adapter)
		return;

	if (netif_running(adapter->netdev))
		cancel_delayed_work_sync(&adapter->work);

	netif_device_detach(netdev);
	netif_device_detach(adapter->netdev);

	be_cmd_reset_function(adapter);

+3 −7
Original line number Diff line number Diff line
@@ -2219,13 +2219,9 @@ bfa_nw_ioc_get_mac(struct bfa_ioc *ioc)
static void
bfa_ioc_recover(struct bfa_ioc *ioc)
{
	u16 bdf;

	bdf = (ioc->pcidev.pci_slot << 8 | ioc->pcidev.pci_func << 3 |
					ioc->pcidev.device_id);

	pr_crit("Firmware heartbeat failure at %d", bdf);
	BUG_ON(1);
	pr_crit("Heart Beat of IOC has failed\n");
	bfa_ioc_stats(ioc, ioc_hbfails);
	bfa_fsm_send_event(ioc, IOC_E_HBFAIL);
}

static void
+2 −1
Original line number Diff line number Diff line
@@ -931,7 +931,8 @@ static int mcp251x_open(struct net_device *net)
	priv->tx_len = 0;

	ret = request_threaded_irq(spi->irq, NULL, mcp251x_can_ist,
			  IRQF_TRIGGER_FALLING, DEVICE_NAME, priv);
		  pdata->irq_flags ? pdata->irq_flags : IRQF_TRIGGER_FALLING,
		  DEVICE_NAME, priv);
	if (ret) {
		dev_err(&spi->dev, "failed to acquire irq %d\n", spi->irq);
		if (pdata->transceiver_enable)
Loading