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

Commit 3e241ff0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (94 commits)
  netfilter: ctnetlink: fix gcc warning during compilation
  net/netrom: Fix socket locking
  netlabel: Always remove the correct address selector
  ucc_geth.c: Fix upsmr setting in RMII mode
  8139too: fix HW initial flow
  af_iucv: Fix race when queuing incoming iucv messages
  af_iucv: Test additional sk states in iucv_sock_shutdown
  af_iucv: Reject incoming msgs if RECV_SHUTDOWN is set
  af_iucv: fix oops in iucv_sock_recvmsg() for MSG_PEEK flag
  af_iucv: consider state IUCV_CLOSING when closing a socket
  iwlwifi: DMA fixes
  iwlwifi: add debugging for TX path
  mwl8: fix build warning.
  mac80211: fix alignment calculation bug
  mac80211: do not print WARN if config interface
  iwl3945: use cancel_delayed_work_sync to cancel rfkill_poll
  iwlwifi: fix EEPROM validation mask to include OTP only devices
  atmel: fix netdev ops conversion
  pcnet_cs: add cis(firmware) of the Allied Telesis LA-PCM
  mlx4_en: Fix cleanup if workqueue create in mlx4_en_add() fails
  ...
parents dc0046c7 29fe1b48
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -3991,8 +3991,8 @@ NETWORKING [GENERAL]
P:	David S. Miller
M:	davem@davemloft.net
L:	netdev@vger.kernel.org
W:	http://linux-net.osdl.org/
T:	git kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6.git
W:	http://www.linuxfoundation.org/en/Net
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
S:	Maintained
F:	net/
F:	include/net/
@@ -4033,6 +4033,13 @@ F: net/wireless/
F:	include/net/ieee80211*
F:	include/net/wireless.h

NETWORKING DRIVERS
L:	netdev@vger.kernel.org
W:	http://www.linuxfoundation.org/en/Net
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git
S:	Odd Fixes
F:	drivers/net/

NETXEN (1/10) GbE SUPPORT
P:	Dhananjay Phadke
M:	dhananjay@netxen.com
+5 −5
Original line number Diff line number Diff line
@@ -1383,6 +1383,11 @@ static void rtl8139_hw_start (struct net_device *dev)
	RTL_W32_F (MAC0 + 0, le32_to_cpu (*(__le32 *) (dev->dev_addr + 0)));
	RTL_W32_F (MAC0 + 4, le16_to_cpu (*(__le16 *) (dev->dev_addr + 4)));

	tp->cur_rx = 0;

	/* init Rx ring buffer DMA address */
	RTL_W32_F (RxBuf, tp->rx_ring_dma);

	/* Must enable Tx/Rx before setting transfer thresholds! */
	RTL_W8 (ChipCmd, CmdRxEnb | CmdTxEnb);

@@ -1390,8 +1395,6 @@ static void rtl8139_hw_start (struct net_device *dev)
	RTL_W32 (RxConfig, tp->rx_config);
	RTL_W32 (TxConfig, rtl8139_tx_config);

	tp->cur_rx = 0;

	rtl_check_media (dev, 1);

	if (tp->chipset >= CH_8139B) {
@@ -1406,9 +1409,6 @@ static void rtl8139_hw_start (struct net_device *dev)
	/* Lock Config[01234] and BMCR register writes */
	RTL_W8 (Cfg9346, Cfg9346_Lock);

	/* init Rx ring buffer DMA address */
	RTL_W32_F (RxBuf, tp->rx_ring_dma);

	/* init Tx buffer DMA addresses */
	for (i = 0; i < NUM_TX_DESC; i++)
		RTL_W32_F (TxAddr0 + (i * 4), tp->tx_bufs_dma + (tp->tx_buf[i] - tp->tx_bufs));
+2 −2
Original line number Diff line number Diff line
@@ -28,9 +28,9 @@ if NETDEVICES

config COMPAT_NET_DEV_OPS
       default y
       bool "Enable older network device API compatiablity"
       bool "Enable older network device API compatibility"
       ---help---
          This option enables kernel compatiability with older network devices
          This option enables kernel compatibility with older network devices
          that do not use net_device_ops interface.

	  If unsure, say Y.
+20 −24
Original line number Diff line number Diff line
@@ -1117,8 +1117,8 @@ static void cxgb_down(struct adapter *adapter)
	spin_unlock_irq(&adapter->work_lock);

	free_irq_resources(adapter);
	flush_workqueue(cxgb3_wq);	/* wait for external IRQ handler */
	quiesce_rx(adapter);
	flush_workqueue(cxgb3_wq);	/* wait for external IRQ handler */
}

static void schedule_chk_task(struct adapter *adap)
@@ -1187,6 +1187,9 @@ static int offload_close(struct t3cdev *tdev)

	sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group);

	/* Flush work scheduled while releasing TIDs */
	flush_scheduled_work();

	tdev->lldev = NULL;
	cxgb3_set_dummy_ops(tdev);
	t3_tp_set_offload_mode(adapter, 0);
@@ -1232,6 +1235,10 @@ static int cxgb_close(struct net_device *dev)
	struct port_info *pi = netdev_priv(dev);
	struct adapter *adapter = pi->adapter;

	
	if (!adapter->open_device_map)
		return 0;

	/* Stop link fault interrupts */
	t3_xgm_intr_disable(adapter, pi->port_id);
	t3_read_reg(adapter, A_XGM_INT_STATUS + pi->mac.offset);
@@ -1247,8 +1254,7 @@ static int cxgb_close(struct net_device *dev)
	spin_unlock_irq(&adapter->work_lock);

	if (!(adapter->open_device_map & PORT_MASK))
		cancel_rearming_delayed_workqueue(cxgb3_wq,
						  &adapter->adap_check_task);
		cancel_delayed_work_sync(&adapter->adap_check_task);

	if (!adapter->open_device_map)
		cxgb_down(adapter);
@@ -2493,6 +2499,7 @@ static void check_link_status(struct adapter *adapter)

		spin_lock_irq(&adapter->work_lock);
		if (p->link_fault) {
			t3_link_fault(adapter, i);
			spin_unlock_irq(&adapter->work_lock);
			continue;
		}
@@ -2554,8 +2561,6 @@ static void t3_adap_check_task(struct work_struct *work)

	adapter->check_task_cnt++;

	/* Check link status for PHYs without interrupts */
	if (p->linkpoll_period)
	check_link_status(adapter);

	/* Accumulate MAC stats if needed */
@@ -2680,21 +2685,6 @@ void t3_os_ext_intr_handler(struct adapter *adapter)
	spin_unlock(&adapter->work_lock);
}

static void link_fault_task(struct work_struct *work)
{
	struct adapter *adapter = container_of(work, struct adapter,
					       link_fault_handler_task);
	int i;

	for_each_port(adapter, i) {
		struct net_device *netdev = adapter->port[i];
		struct port_info *pi = netdev_priv(netdev);

		if (pi->link_fault)
			t3_link_fault(adapter, i);
	}
}

void t3_os_link_fault_handler(struct adapter *adapter, int port_id)
{
	struct net_device *netdev = adapter->port[port_id];
@@ -2702,7 +2692,6 @@ void t3_os_link_fault_handler(struct adapter *adapter, int port_id)

	spin_lock(&adapter->work_lock);
	pi->link_fault = 1;
	queue_work(cxgb3_wq, &adapter->link_fault_handler_task);
	spin_unlock(&adapter->work_lock);
}

@@ -2838,6 +2827,9 @@ static pci_ers_result_t t3_io_error_detected(struct pci_dev *pdev,
	struct adapter *adapter = pci_get_drvdata(pdev);
	int ret;

	if (state == pci_channel_io_perm_failure)
		return PCI_ERS_RESULT_DISCONNECT;

	ret = t3_adapter_error(adapter, 0);

	/* Request a slot reset. */
@@ -2932,8 +2924,13 @@ static int __devinit cxgb_enable_msix(struct adapter *adap)
	while ((err = pci_enable_msix(adap->pdev, entries, vectors)) > 0)
		vectors = err;

	if (!err && vectors < (adap->params.nports + 1))
	if (err < 0)
		pci_disable_msix(adap->pdev);

	if (!err && vectors < (adap->params.nports + 1)) {
		pci_disable_msix(adap->pdev);
		err = -1;
	}

	if (!err) {
		for (i = 0; i < vectors; ++i)
@@ -3082,7 +3079,6 @@ static int __devinit init_one(struct pci_dev *pdev,

	INIT_LIST_HEAD(&adapter->adapter_list);
	INIT_WORK(&adapter->ext_intr_handler_task, ext_intr_task);
	INIT_WORK(&adapter->link_fault_handler_task, link_fault_task);
	INIT_WORK(&adapter->fatal_error_handler_task, fatal_error_task);
	INIT_DELAYED_WORK(&adapter->adap_check_task, t3_adap_check_task);

+1 −10
Original line number Diff line number Diff line
@@ -1202,7 +1202,6 @@ void t3_link_changed(struct adapter *adapter, int port_id)
	struct cphy *phy = &pi->phy;
	struct cmac *mac = &pi->mac;
	struct link_config *lc = &pi->link_config;
	int force_link_down = 0;

	phy->ops->get_link_status(phy, &link_ok, &speed, &duplex, &fc);

@@ -1218,14 +1217,9 @@ void t3_link_changed(struct adapter *adapter, int port_id)
		status = t3_read_reg(adapter, A_XGM_INT_STATUS + mac->offset);
		if (status & F_LINKFAULTCHANGE) {
			mac->stats.link_faults++;
			force_link_down = 1;
			pi->link_fault = 1;
		}
		t3_open_rx_traffic(mac, rx_cfg, rx_hash_high, rx_hash_low);

		if (force_link_down) {
			t3_os_link_fault_handler(adapter, port_id);
			return;
		}
	}

	if (lc->requested_fc & PAUSE_AUTONEG)
@@ -1292,9 +1286,6 @@ void t3_link_fault(struct adapter *adapter, int port_id)
		/* Account link faults only when the phy reports a link up */
		if (link_ok)
			mac->stats.link_faults++;

		msleep(1000);
		t3_os_link_fault_handler(adapter, port_id);
	} else {
		if (link_ok)
			t3_write_reg(adapter, A_XGM_XAUI_ACT_CTRL + mac->offset,
Loading