* [PATCH 0/4] atl1: miscellaneous fixes and updates
@ 2008-09-27 14:17 Jay Cliburn
2008-09-27 14:17 ` [PATCH 1/4] atl1: fix transmit timeout bug Jay Cliburn
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Jay Cliburn @ 2008-09-27 14:17 UTC (permalink / raw)
To: jeff; +Cc: csnook, jie.yang, netdev, linux-kernel, Jay Cliburn
Please accept this patchset for the atl1 driver. It includes a bugfix
for transmit timeouts reported by Alexey Dobriyan, removal of LLTX
(inspired by Kevin Hao's removal of same from atl2), removal of the
EXPERIMENTAL tag (initially submitted in slightly different form by
Chris Snook, but somehow lost), and an update to the driver's
introductory comments.
Jay Cliburn (4):
atl1: fix transmit timeout bug
atl1: remove LLTX
atl1: remove EXPERIMENTAL label
atl1: update introductory comments
drivers/net/Kconfig | 7 ++++---
drivers/net/atlx/atl1.c | 32 +++++++-------------------------
drivers/net/atlx/atlx.c | 1 -
3 files changed, 11 insertions(+), 29 deletions(-)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/4] atl1: fix transmit timeout bug
2008-09-27 14:17 [PATCH 0/4] atl1: miscellaneous fixes and updates Jay Cliburn
@ 2008-09-27 14:17 ` Jay Cliburn
2008-09-27 14:17 ` [PATCH 2/4] atl1: remove LLTX Jay Cliburn
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Jay Cliburn @ 2008-09-27 14:17 UTC (permalink / raw)
To: jeff; +Cc: csnook, jie.yang, netdev, linux-kernel, Jay Cliburn, Alexey Dobriyan
See http://marc.info/?l=linux-netdev&m=121931988219314&w=2
Stop the queue and turn off carrier to prevent transmit timeouts
when the cable is unplugged/replugged.
Signed-off-by: Jay Cliburn <jacliburn@bellsouth.net>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
---
drivers/net/atlx/atl1.c | 4 +++-
drivers/net/atlx/atlx.c | 1 -
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index e23ce77..e00a986 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -2642,6 +2642,7 @@ static void atl1_down(struct atl1_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
+ netif_stop_queue(netdev);
del_timer_sync(&adapter->watchdog_timer);
del_timer_sync(&adapter->phy_config_timer);
adapter->phy_timer_pending = false;
@@ -2655,7 +2656,6 @@ static void atl1_down(struct atl1_adapter *adapter)
adapter->link_speed = SPEED_0;
adapter->link_duplex = -1;
netif_carrier_off(netdev);
- netif_stop_queue(netdev);
atl1_clean_tx_ring(adapter);
atl1_clean_rx_ring(adapter);
@@ -2724,6 +2724,8 @@ static int atl1_open(struct net_device *netdev)
struct atl1_adapter *adapter = netdev_priv(netdev);
int err;
+ netif_carrier_off(netdev);
+
/* allocate transmit descriptors */
err = atl1_setup_ring_resources(adapter);
if (err)
diff --git a/drivers/net/atlx/atlx.c b/drivers/net/atlx/atlx.c
index b3e7fcf..3cc9d10 100644
--- a/drivers/net/atlx/atlx.c
+++ b/drivers/net/atlx/atlx.c
@@ -105,7 +105,6 @@ static void atlx_check_for_link(struct atlx_adapter *adapter)
netdev->name);
adapter->link_speed = SPEED_0;
netif_carrier_off(netdev);
- netif_stop_queue(netdev);
}
}
schedule_work(&adapter->link_chg_task);
--
1.5.5.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/4] atl1: remove LLTX
2008-09-27 14:17 [PATCH 0/4] atl1: miscellaneous fixes and updates Jay Cliburn
2008-09-27 14:17 ` [PATCH 1/4] atl1: fix transmit timeout bug Jay Cliburn
@ 2008-09-27 14:17 ` Jay Cliburn
2008-09-27 14:17 ` [PATCH 3/4] atl1: remove EXPERIMENTAL label Jay Cliburn
2008-09-27 14:17 ` [PATCH 4/4] atl1: update introductory comments Jay Cliburn
3 siblings, 0 replies; 5+ messages in thread
From: Jay Cliburn @ 2008-09-27 14:17 UTC (permalink / raw)
To: jeff; +Cc: csnook, jie.yang, netdev, linux-kernel, Jay Cliburn
NETIF_F_LLTX is deprecated. Remove private TX locking from the driver
and remove the NETIF_F_LLTX feature flag.
Signed-off-by: Jay Cliburn <jacliburn@bellsouth.net>
---
drivers/net/atlx/atl1.c | 18 +-----------------
1 files changed, 1 insertions(+), 17 deletions(-)
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index e00a986..5f157e0 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -2109,7 +2109,6 @@ static u16 atl1_tpd_avail(struct atl1_tpd_ring *tpd_ring)
static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,
struct tx_packet_desc *ptpd)
{
- /* spinlock held */
u8 hdr_len, ip_off;
u32 real_len;
int err;
@@ -2196,7 +2195,6 @@ static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,
static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
struct tx_packet_desc *ptpd)
{
- /* spinlock held */
struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
struct atl1_buffer *buffer_info;
u16 buf_len = skb->len;
@@ -2303,7 +2301,6 @@ static void atl1_tx_map(struct atl1_adapter *adapter, struct sk_buff *skb,
static void atl1_tx_queue(struct atl1_adapter *adapter, u16 count,
struct tx_packet_desc *ptpd)
{
- /* spinlock held */
struct atl1_tpd_ring *tpd_ring = &adapter->tpd_ring;
struct atl1_buffer *buffer_info;
struct tx_packet_desc *tpd;
@@ -2361,7 +2358,6 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
struct tx_packet_desc *ptpd;
u16 frag_size;
u16 vlan_tag;
- unsigned long flags;
unsigned int nr_frags = 0;
unsigned int mss = 0;
unsigned int f;
@@ -2399,18 +2395,9 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
}
}
- if (!spin_trylock_irqsave(&adapter->lock, flags)) {
- /* Can't get lock - tell upper layer to requeue */
- if (netif_msg_tx_queued(adapter))
- dev_printk(KERN_DEBUG, &adapter->pdev->dev,
- "tx locked\n");
- return NETDEV_TX_LOCKED;
- }
-
if (atl1_tpd_avail(&adapter->tpd_ring) < count) {
/* not enough descriptors */
netif_stop_queue(netdev);
- spin_unlock_irqrestore(&adapter->lock, flags);
if (netif_msg_tx_queued(adapter))
dev_printk(KERN_DEBUG, &adapter->pdev->dev,
"tx busy\n");
@@ -2432,7 +2419,6 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
tso = atl1_tso(adapter, skb, ptpd);
if (tso < 0) {
- spin_unlock_irqrestore(&adapter->lock, flags);
dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
@@ -2440,7 +2426,6 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
if (!tso) {
ret_val = atl1_tx_csum(adapter, skb, ptpd);
if (ret_val < 0) {
- spin_unlock_irqrestore(&adapter->lock, flags);
dev_kfree_skb_any(skb);
return NETDEV_TX_OK;
}
@@ -2449,7 +2434,7 @@ static int atl1_xmit_frame(struct sk_buff *skb, struct net_device *netdev)
atl1_tx_map(adapter, skb, ptpd);
atl1_tx_queue(adapter, count, ptpd);
atl1_update_mailbox(adapter);
- spin_unlock_irqrestore(&adapter->lock, flags);
+ mmiowb();
netdev->trans_start = jiffies;
return NETDEV_TX_OK;
}
@@ -3024,7 +3009,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
netdev->features = NETIF_F_HW_CSUM;
netdev->features |= NETIF_F_SG;
netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
- netdev->features |= NETIF_F_LLTX;
/*
* patch for some L1 of old version,
--
1.5.5.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/4] atl1: remove EXPERIMENTAL label
2008-09-27 14:17 [PATCH 0/4] atl1: miscellaneous fixes and updates Jay Cliburn
2008-09-27 14:17 ` [PATCH 1/4] atl1: fix transmit timeout bug Jay Cliburn
2008-09-27 14:17 ` [PATCH 2/4] atl1: remove LLTX Jay Cliburn
@ 2008-09-27 14:17 ` Jay Cliburn
2008-09-27 14:17 ` [PATCH 4/4] atl1: update introductory comments Jay Cliburn
3 siblings, 0 replies; 5+ messages in thread
From: Jay Cliburn @ 2008-09-27 14:17 UTC (permalink / raw)
To: jeff; +Cc: csnook, jie.yang, netdev, linux-kernel, Jay Cliburn
Remove the EXPERIMENTAL label from the atl1 driver and change the vendor
name to include Attansic's successor, Atheros. We'll leave Attansic in
the name since Attansic's PCI ID (1969) is encoded in the PCI config and
is what users encounter on their systems.
Signed-off-by: Jay Cliburn <jacliburn@bellsouth.net>
---
drivers/net/Kconfig | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index 4a11296..1c8addf 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -2281,12 +2281,13 @@ config QLA3XXX
will be called qla3xxx.
config ATL1
- tristate "Attansic L1 Gigabit Ethernet support (EXPERIMENTAL)"
- depends on PCI && EXPERIMENTAL
+ tristate "Atheros/Attansic L1 Gigabit Ethernet support"
+ depends on PCI
select CRC32
select MII
help
- This driver supports the Attansic L1 gigabit ethernet adapter.
+ This driver supports the Atheros/Attansic L1 gigabit ethernet
+ adapter.
To compile this driver as a module, choose M here. The module
will be called atl1.
--
1.5.5.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 4/4] atl1: update introductory comments
2008-09-27 14:17 [PATCH 0/4] atl1: miscellaneous fixes and updates Jay Cliburn
` (2 preceding siblings ...)
2008-09-27 14:17 ` [PATCH 3/4] atl1: remove EXPERIMENTAL label Jay Cliburn
@ 2008-09-27 14:17 ` Jay Cliburn
3 siblings, 0 replies; 5+ messages in thread
From: Jay Cliburn @ 2008-09-27 14:17 UTC (permalink / raw)
To: jeff; +Cc: csnook, jie.yang, netdev, linux-kernel, Jay Cliburn
Update the driver's introductory comments.
Signed-off-by: Jay Cliburn <jacliburn@bellsouth.net>
---
drivers/net/atlx/atl1.c | 10 +++-------
1 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 5f157e0..3cf59a7 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -24,16 +24,12 @@
* file called COPYING.
*
* Contact Information:
- * Xiong Huang <xiong_huang@attansic.com>
- * Attansic Technology Corp. 3F 147, Xianzheng 9th Road, Zhubei,
- * Xinzhu 302, TAIWAN, REPUBLIC OF CHINA
- *
+ * Xiong Huang <xiong.huang@atheros.com>
+ * Jie Yang <jie.yang@atheros.com>
* Chris Snook <csnook@redhat.com>
* Jay Cliburn <jcliburn@gmail.com>
*
- * This version is adapted from the Attansic reference driver for
- * inclusion in the Linux kernel. It is currently under heavy development.
- * A very incomplete list of things that need to be dealt with:
+ * This version is adapted from the Attansic reference driver.
*
* TODO:
* Add more ethtool functions.
--
1.5.5.1
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-09-27 14:27 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-27 14:17 [PATCH 0/4] atl1: miscellaneous fixes and updates Jay Cliburn
2008-09-27 14:17 ` [PATCH 1/4] atl1: fix transmit timeout bug Jay Cliburn
2008-09-27 14:17 ` [PATCH 2/4] atl1: remove LLTX Jay Cliburn
2008-09-27 14:17 ` [PATCH 3/4] atl1: remove EXPERIMENTAL label Jay Cliburn
2008-09-27 14:17 ` [PATCH 4/4] atl1: update introductory comments Jay Cliburn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®