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

Commit c1e48efc authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

Conflicts:
	drivers/net/benet/be_main.c
parents 912d398d 1b86a58f
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
@@ -155,7 +155,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;
};
@@ -292,7 +292,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;
+10 −7
Original line number Diff line number Diff line
@@ -1509,7 +1509,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 */
@@ -1621,7 +1621,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;
@@ -1697,11 +1697,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);
		}
	}
@@ -1964,7 +1964,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,
@@ -2356,6 +2356,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++)
@@ -3152,11 +3153,13 @@ 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 (!adapter)
		return;

	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