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

Commit 09ce42d3 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6:
  bnx2: Fix the behavior of ethtool when ONBOOT=no
  qla3xxx: Don't sleep while holding lock.
  qla3xxx: Give the PHY time to come out of reset.
  ipv4 routing: Ensure that route cache entries are usable and reclaimable with caching is off
  net: Move rx skb_orphan call to where needed
  ipv6: Use correct data types for ICMPv6 type and code
  net: let KS8842 driver depend on HAS_IOMEM
  can: let SJA1000 driver depend on HAS_IOMEM
  netxen: fix firmware init handshake
  netxen: fix build with without CONFIG_PM
  netfilter: xt_rateest: fix comparison with self
  netfilter: xt_quota: fix incomplete initialization
  netfilter: nf_log: fix direct userspace memory access in proc handler
  netfilter: fix some sparse endianess warnings
  netfilter: nf_conntrack: fix conntrack lookup race
  netfilter: nf_conntrack: fix confirmation race condition
  netfilter: nf_conntrack: death_by_timeout() fix
parents d7ed9c05 7959ea25
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -1725,6 +1725,7 @@ config TLAN


config KS8842
config KS8842
	tristate "Micrel KSZ8842"
	tristate "Micrel KSZ8842"
	depends on HAS_IOMEM
	help
	help
	  This platform driver is for Micrel KSZ8842 chip.
	  This platform driver is for Micrel KSZ8842 chip.


+9 −1
Original line number Original line Diff line number Diff line
@@ -6825,6 +6825,14 @@ bnx2_nway_reset(struct net_device *dev)
	return 0;
	return 0;
}
}


static u32
bnx2_get_link(struct net_device *dev)
{
	struct bnx2 *bp = netdev_priv(dev);

	return bp->link_up;
}

static int
static int
bnx2_get_eeprom_len(struct net_device *dev)
bnx2_get_eeprom_len(struct net_device *dev)
{
{
@@ -7392,7 +7400,7 @@ static const struct ethtool_ops bnx2_ethtool_ops = {
	.get_wol		= bnx2_get_wol,
	.get_wol		= bnx2_get_wol,
	.set_wol		= bnx2_set_wol,
	.set_wol		= bnx2_set_wol,
	.nway_reset		= bnx2_nway_reset,
	.nway_reset		= bnx2_nway_reset,
	.get_link		= ethtool_op_get_link,
	.get_link		= bnx2_get_link,
	.get_eeprom_len		= bnx2_get_eeprom_len,
	.get_eeprom_len		= bnx2_get_eeprom_len,
	.get_eeprom		= bnx2_get_eeprom,
	.get_eeprom		= bnx2_get_eeprom,
	.set_eeprom		= bnx2_set_eeprom,
	.set_eeprom		= bnx2_set_eeprom,
+1 −1
Original line number Original line Diff line number Diff line
@@ -36,7 +36,7 @@ config CAN_CALC_BITTIMING
	  If unsure, say Y.
	  If unsure, say Y.


config CAN_SJA1000
config CAN_SJA1000
	depends on CAN_DEV
	depends on CAN_DEV && HAS_IOMEM
	tristate "Philips SJA1000"
	tristate "Philips SJA1000"
	---help---
	---help---
	  Driver for the SJA1000 CAN controllers from Philips or NXP
	  Driver for the SJA1000 CAN controllers from Philips or NXP
+20 −17
Original line number Original line Diff line number Diff line
@@ -944,28 +944,31 @@ int netxen_phantom_init(struct netxen_adapter *adapter, int pegtune_val)
	u32 val = 0;
	u32 val = 0;
	int retries = 60;
	int retries = 60;


	if (!pegtune_val) {
	if (pegtune_val)
		return 0;

	do {
	do {
		val = NXRD32(adapter, CRB_CMDPEG_STATE);
		val = NXRD32(adapter, CRB_CMDPEG_STATE);


			if (val == PHAN_INITIALIZE_COMPLETE ||
		switch (val) {
				val == PHAN_INITIALIZE_ACK)
		case PHAN_INITIALIZE_COMPLETE:
		case PHAN_INITIALIZE_ACK:
			return 0;
			return 0;
		case PHAN_INITIALIZE_FAILED:
			goto out_err;
		default:
			break;
		}


		msleep(500);
		msleep(500);


	} while (--retries);
	} while (--retries);


		if (!retries) {
	NXWR32(adapter, CRB_CMDPEG_STATE, PHAN_INITIALIZE_FAILED);
			pegtune_val = NXRD32(adapter,
					NETXEN_ROMUSB_GLB_PEGTUNE_DONE);
			printk(KERN_WARNING "netxen_phantom_init: init failed, "
					"pegtune_val=%x\n", pegtune_val);
			return -1;
		}
	}


	return 0;
out_err:
	dev_warn(&adapter->pdev->dev, "firmware init failed\n");
	return -EIO;
}
}


static int
static int
+6 −1
Original line number Original line Diff line number Diff line
@@ -705,7 +705,7 @@ netxen_start_firmware(struct netxen_adapter *adapter, int request_fw)
		first_driver = (adapter->ahw.pci_func == 0);
		first_driver = (adapter->ahw.pci_func == 0);


	if (!first_driver)
	if (!first_driver)
		return 0;
		goto wait_init;


	first_boot = NXRD32(adapter, NETXEN_CAM_RAM(0x1fc));
	first_boot = NXRD32(adapter, NETXEN_CAM_RAM(0x1fc));


@@ -752,6 +752,7 @@ netxen_start_firmware(struct netxen_adapter *adapter, int request_fw)
		| (_NETXEN_NIC_LINUX_SUBVERSION);
		| (_NETXEN_NIC_LINUX_SUBVERSION);
	NXWR32(adapter, CRB_DRIVER_VERSION, val);
	NXWR32(adapter, CRB_DRIVER_VERSION, val);


wait_init:
	/* Handshake with the card before we register the devices. */
	/* Handshake with the card before we register the devices. */
	err = netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE);
	err = netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE);
	if (err) {
	if (err) {
@@ -1178,6 +1179,7 @@ static void __devexit netxen_nic_remove(struct pci_dev *pdev)
	free_netdev(netdev);
	free_netdev(netdev);
}
}


#ifdef CONFIG_PM
static int
static int
netxen_nic_suspend(struct pci_dev *pdev, pm_message_t state)
netxen_nic_suspend(struct pci_dev *pdev, pm_message_t state)
{
{
@@ -1242,6 +1244,7 @@ netxen_nic_resume(struct pci_dev *pdev)


	return 0;
	return 0;
}
}
#endif


static int netxen_nic_open(struct net_device *netdev)
static int netxen_nic_open(struct net_device *netdev)
{
{
@@ -1771,8 +1774,10 @@ static struct pci_driver netxen_driver = {
	.id_table = netxen_pci_tbl,
	.id_table = netxen_pci_tbl,
	.probe = netxen_nic_probe,
	.probe = netxen_nic_probe,
	.remove = __devexit_p(netxen_nic_remove),
	.remove = __devexit_p(netxen_nic_remove),
#ifdef CONFIG_PM
	.suspend = netxen_nic_suspend,
	.suspend = netxen_nic_suspend,
	.resume = netxen_nic_resume
	.resume = netxen_nic_resume
#endif
};
};


/* Driver Registration on NetXen card    */
/* Driver Registration on NetXen card    */
Loading