* [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication
@ 2008-08-09 1:35 Jeff Kirsher
2008-08-09 1:35 ` [PATCH 2/7] e1000e: Set InterruptThrottleRate to default when invalid value used Jeff Kirsher
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Jeff Kirsher @ 2008-08-09 1:35 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, akpm, Bruce Allan, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
A number of users have mentioned they have tools that rely on a link-up
indication having a return value of 1 rather than a non-zero value.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/e1000e/ethtool.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index cf9679f..e21c9e0 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -177,7 +177,7 @@ static u32 e1000_get_link(struct net_device *netdev)
u32 status;
status = er32(STATUS);
- return (status & E1000_STATUS_LU);
+ return (status & E1000_STATUS_LU) ? 1 : 0;
}
static int e1000_set_spd_dplx(struct e1000_adapter *adapter, u16 spddplx)
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/7] e1000e: Set InterruptThrottleRate to default when invalid value used
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
@ 2008-08-09 1:35 ` Jeff Kirsher
2008-08-09 1:35 ` [PATCH 3/7] e1000e: Use skb_copy_to_linear_data_offset introduced in 2.6.22 Jeff Kirsher
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Jeff Kirsher @ 2008-08-09 1:35 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, akpm, Bruce Allan, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
During module load, seting the InterruptThrottleRate parameter to an
invalid value would result in the itr/itr_setting pair being set to
unexpected values which would result in poor performance.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/e1000e/param.c | 23 +++++++++++++++++++----
1 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/drivers/net/e1000e/param.c b/drivers/net/e1000e/param.c
index 8effc31..b0499f2 100644
--- a/drivers/net/e1000e/param.c
+++ b/drivers/net/e1000e/param.c
@@ -327,11 +327,26 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter)
e1000_validate_option(&adapter->itr, &opt,
adapter);
/*
- * save the setting, because the dynamic bits
- * change itr. clear the lower two bits
- * because they are used as control
+ * Save the setting, because the dynamic bits
+ * change itr.
*/
- adapter->itr_setting = adapter->itr & ~3;
+ if (e1000_validate_option(&adapter->itr, &opt,
+ adapter) &&
+ (adapter->itr == 3)) {
+ /*
+ * In case of invalid user value,
+ * default to conservative mode.
+ */
+ adapter->itr_setting = adapter->itr;
+ adapter->itr = 20000;
+ } else {
+ /*
+ * Clear the lower two bits because
+ * they are used as control.
+ */
+ adapter->itr_setting =
+ adapter->itr & ~3;
+ }
break;
}
} else {
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/7] e1000e: Use skb_copy_to_linear_data_offset introduced in 2.6.22
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
2008-08-09 1:35 ` [PATCH 2/7] e1000e: Set InterruptThrottleRate to default when invalid value used Jeff Kirsher
@ 2008-08-09 1:35 ` Jeff Kirsher
2008-08-09 1:36 ` [PATCH 4/7] e1000e: Increase Tx timeout factor for 10Mbps Jeff Kirsher
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Jeff Kirsher @ 2008-08-09 1:35 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, akpm, Bruce Allan, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
The e1000e driver was based on a version of e1000 prior to acme's
introduction of skb_copy_to_linear_data_offset, and was submitted
after acme went through and coverted all the drivers to use it.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/e1000e/netdev.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 05b0b2f..efa9445 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -510,9 +510,12 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
netdev_alloc_skb(netdev, length + NET_IP_ALIGN);
if (new_skb) {
skb_reserve(new_skb, NET_IP_ALIGN);
- memcpy(new_skb->data - NET_IP_ALIGN,
- skb->data - NET_IP_ALIGN,
- length + NET_IP_ALIGN);
+ skb_copy_to_linear_data_offset(new_skb,
+ -NET_IP_ALIGN,
+ (skb->data -
+ NET_IP_ALIGN),
+ (length +
+ NET_IP_ALIGN));
/* save the skb in buffer_info as good */
buffer_info->skb = skb;
skb = new_skb;
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/7] e1000e: Increase Tx timeout factor for 10Mbps
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
2008-08-09 1:35 ` [PATCH 2/7] e1000e: Set InterruptThrottleRate to default when invalid value used Jeff Kirsher
2008-08-09 1:35 ` [PATCH 3/7] e1000e: Use skb_copy_to_linear_data_offset introduced in 2.6.22 Jeff Kirsher
@ 2008-08-09 1:36 ` Jeff Kirsher
2008-08-09 1:36 ` [PATCH 5/7] e1000e: increase minimum frame size allowed Jeff Kirsher
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Jeff Kirsher @ 2008-08-09 1:36 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, akpm, Bruce Allan, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Prevent Tx hangs from happening on 10Mb flood ping by increasing the
timeout factor.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/e1000e/netdev.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index efa9445..4573c7b 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -3058,7 +3058,7 @@ static void e1000_watchdog_task(struct work_struct *work)
case SPEED_10:
txb2b = 0;
netdev->tx_queue_len = 10;
- adapter->tx_timeout_factor = 14;
+ adapter->tx_timeout_factor = 16;
break;
case SPEED_100:
txb2b = 0;
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 5/7] e1000e: increase minimum frame size allowed
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
` (2 preceding siblings ...)
2008-08-09 1:36 ` [PATCH 4/7] e1000e: Increase Tx timeout factor for 10Mbps Jeff Kirsher
@ 2008-08-09 1:36 ` Jeff Kirsher
2008-08-09 1:36 ` [PATCH 6/7] e1000e: test for unusable MSI support Jeff Kirsher
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Jeff Kirsher @ 2008-08-09 1:36 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, akpm, Bruce Allan, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Setting an MTU value below 68 was disabling the network connection and
would not reconnect until the driver was reloaded. Prevent changing the
MTU to anything below 68.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/e1000e/netdev.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 4573c7b..b8b26cf 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -3724,7 +3724,7 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
struct e1000_adapter *adapter = netdev_priv(netdev);
int max_frame = new_mtu + ETH_HLEN + ETH_FCS_LEN;
- if ((max_frame < ETH_ZLEN + ETH_FCS_LEN) ||
+ if ((new_mtu < ETH_ZLEN + ETH_FCS_LEN + VLAN_HLEN) ||
(max_frame > MAX_JUMBO_FRAME_SIZE)) {
e_err("Invalid MTU setting\n");
return -EINVAL;
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 6/7] e1000e: test for unusable MSI support
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
` (3 preceding siblings ...)
2008-08-09 1:36 ` [PATCH 5/7] e1000e: increase minimum frame size allowed Jeff Kirsher
@ 2008-08-09 1:36 ` Jeff Kirsher
2008-08-09 1:36 ` [PATCH 7/7] e1000e: remove unnecessary snippet missed in prior check_options update Jeff Kirsher
2008-08-14 8:46 ` [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Garzik
6 siblings, 0 replies; 8+ messages in thread
From: Jeff Kirsher @ 2008-08-09 1:36 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, akpm, Bruce Allan, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
Some systems do not like 82571/2 use of 16-bit MSI messages and some
other systems claim to support MSI, but neither really works. Setup a
test MSI handler to detect whether or not MSI is working properly, and
if not, fallback to legacy INTx interrupts.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/e1000e/defines.h | 2
drivers/net/e1000e/e1000.h | 1
drivers/net/e1000e/netdev.c | 172 ++++++++++++++++++++++++++++++++++++++++--
3 files changed, 164 insertions(+), 11 deletions(-)
diff --git a/drivers/net/e1000e/defines.h b/drivers/net/e1000e/defines.h
index f823b8b..14b0e6c 100644
--- a/drivers/net/e1000e/defines.h
+++ b/drivers/net/e1000e/defines.h
@@ -389,7 +389,7 @@
/* Interrupt Cause Set */
#define E1000_ICS_LSC E1000_ICR_LSC /* Link Status Change */
-#define E1000_ICS_RXDMT0 E1000_ICR_RXDMT0 /* rx desc min. threshold */
+#define E1000_ICS_RXSEQ E1000_ICR_RXSEQ /* Rx sequence error */
#define E1000_ICS_RXDMT0 E1000_ICR_RXDMT0 /* Rx desc min. threshold */
/* Transmit Descriptor Control */
diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index cf57050..ac4e506 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -326,6 +326,7 @@ struct e1000_info {
#define FLAG_RX_CSUM_ENABLED (1 << 28)
#define FLAG_TSO_FORCE (1 << 29)
#define FLAG_RX_RESTART_NOW (1 << 30)
+#define FLAG_MSI_TEST_FAILED (1 << 31)
#define E1000_RX_DESC_PS(R, i) \
(&(((union e1000_rx_desc_packet_split *)((R).desc))[i]))
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index b8b26cf..d266510 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -1236,26 +1236,36 @@ static irqreturn_t e1000_intr(int irq, void *data)
return IRQ_HANDLED;
}
+/**
+ * e1000_request_irq - initialize interrupts
+ *
+ * Attempts to configure interrupts using the best available
+ * capabilities of the hardware and kernel.
+ **/
static int e1000_request_irq(struct e1000_adapter *adapter)
{
struct net_device *netdev = adapter->netdev;
- irq_handler_t handler = e1000_intr;
int irq_flags = IRQF_SHARED;
int err;
- if (!pci_enable_msi(adapter->pdev)) {
- adapter->flags |= FLAG_MSI_ENABLED;
- handler = e1000_intr_msi;
- irq_flags = 0;
+ if (!(adapter->flags & FLAG_MSI_TEST_FAILED)) {
+ err = pci_enable_msi(adapter->pdev);
+ if (!err) {
+ adapter->flags |= FLAG_MSI_ENABLED;
+ irq_flags = 0;
+ }
}
- err = request_irq(adapter->pdev->irq, handler, irq_flags, netdev->name,
- netdev);
+ err = request_irq(adapter->pdev->irq,
+ ((adapter->flags & FLAG_MSI_ENABLED) ?
+ &e1000_intr_msi : &e1000_intr),
+ irq_flags, netdev->name, netdev);
if (err) {
- e_err("Unable to allocate %s interrupt (return: %d)\n",
- adapter->flags & FLAG_MSI_ENABLED ? "MSI":"INTx", err);
- if (adapter->flags & FLAG_MSI_ENABLED)
+ if (adapter->flags & FLAG_MSI_ENABLED) {
pci_disable_msi(adapter->pdev);
+ adapter->flags &= ~FLAG_MSI_ENABLED;
+ }
+ e_err("Unable to allocate interrupt, Error: %d\n", err);
}
return err;
@@ -2595,6 +2605,135 @@ err:
}
/**
+ * e1000_intr_msi_test - Interrupt Handler
+ * @irq: interrupt number
+ * @data: pointer to a network interface device structure
+ **/
+static irqreturn_t e1000_intr_msi_test(int irq, void *data)
+{
+ struct net_device *netdev = data;
+ struct e1000_adapter *adapter = netdev_priv(netdev);
+ struct e1000_hw *hw = &adapter->hw;
+ u32 icr = er32(ICR);
+
+ e_dbg("%s: icr is %08X\n", netdev->name, icr);
+ if (icr & E1000_ICR_RXSEQ) {
+ adapter->flags &= ~FLAG_MSI_TEST_FAILED;
+ wmb();
+ }
+
+ return IRQ_HANDLED;
+}
+
+/**
+ * e1000_test_msi_interrupt - Returns 0 for successful test
+ * @adapter: board private struct
+ *
+ * code flow taken from tg3.c
+ **/
+static int e1000_test_msi_interrupt(struct e1000_adapter *adapter)
+{
+ struct net_device *netdev = adapter->netdev;
+ struct e1000_hw *hw = &adapter->hw;
+ int err;
+
+ /* poll_enable hasn't been called yet, so don't need disable */
+ /* clear any pending events */
+ er32(ICR);
+
+ /* free the real vector and request a test handler */
+ e1000_free_irq(adapter);
+
+ /* Assume that the test fails, if it succeeds then the test
+ * MSI irq handler will unset this flag */
+ adapter->flags |= FLAG_MSI_TEST_FAILED;
+
+ err = pci_enable_msi(adapter->pdev);
+ if (err)
+ goto msi_test_failed;
+
+ err = request_irq(adapter->pdev->irq, &e1000_intr_msi_test, 0,
+ netdev->name, netdev);
+ if (err) {
+ pci_disable_msi(adapter->pdev);
+ goto msi_test_failed;
+ }
+
+ wmb();
+
+ e1000_irq_enable(adapter);
+
+ /* fire an unusual interrupt on the test handler */
+ ew32(ICS, E1000_ICS_RXSEQ);
+ e1e_flush();
+ msleep(50);
+
+ e1000_irq_disable(adapter);
+
+ rmb();
+
+ if (adapter->flags & FLAG_MSI_TEST_FAILED) {
+ err = -EIO;
+ e_info("MSI interrupt test failed!\n");
+ }
+
+ free_irq(adapter->pdev->irq, netdev);
+ pci_disable_msi(adapter->pdev);
+
+ if (err == -EIO)
+ goto msi_test_failed;
+
+ /* okay so the test worked, restore settings */
+ e_dbg("%s: MSI interrupt test succeeded!\n", netdev->name);
+msi_test_failed:
+ /* restore the original vector, even if it failed */
+ e1000_request_irq(adapter);
+ return err;
+}
+
+/**
+ * e1000_test_msi - Returns 0 if MSI test succeeds or INTx mode is restored
+ * @adapter: board private struct
+ *
+ * code flow taken from tg3.c, called with e1000 interrupts disabled.
+ **/
+static int e1000_test_msi(struct e1000_adapter *adapter)
+{
+ int err;
+ u16 pci_cmd;
+
+ if (!(adapter->flags & FLAG_MSI_ENABLED))
+ return 0;
+
+ /* disable SERR in case the MSI write causes a master abort */
+ pci_read_config_word(adapter->pdev, PCI_COMMAND, &pci_cmd);
+ pci_write_config_word(adapter->pdev, PCI_COMMAND,
+ pci_cmd & ~PCI_COMMAND_SERR);
+
+ err = e1000_test_msi_interrupt(adapter);
+
+ /* restore previous setting of command word */
+ pci_write_config_word(adapter->pdev, PCI_COMMAND, pci_cmd);
+
+ /* success ! */
+ if (!err)
+ return 0;
+
+ /* EIO means MSI test failed */
+ if (err != -EIO)
+ return err;
+
+ /* back to INTx mode */
+ e_warn("MSI interrupt test failed, using legacy interrupt.\n");
+
+ e1000_free_irq(adapter);
+
+ err = e1000_request_irq(adapter);
+
+ return err;
+}
+
+/**
* e1000_open - Called when a network interface is made active
* @netdev: network interface device structure
*
@@ -2652,6 +2791,19 @@ static int e1000_open(struct net_device *netdev)
if (err)
goto err_req_irq;
+ /*
+ * Work around PCIe errata with MSI interrupts causing some chipsets to
+ * ignore e1000e MSI messages, which means we need to test our MSI
+ * interrupt now
+ */
+ {
+ err = e1000_test_msi(adapter);
+ if (err) {
+ e_err("Interrupt allocation failed\n");
+ goto err_req_irq;
+ }
+ }
+
/* From here on the code is the same as e1000e_up() */
clear_bit(__E1000_DOWN, &adapter->state);
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 7/7] e1000e: remove unnecessary snippet missed in prior check_options update
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
` (4 preceding siblings ...)
2008-08-09 1:36 ` [PATCH 6/7] e1000e: test for unusable MSI support Jeff Kirsher
@ 2008-08-09 1:36 ` Jeff Kirsher
2008-08-14 8:46 ` [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Garzik
6 siblings, 0 replies; 8+ messages in thread
From: Jeff Kirsher @ 2008-08-09 1:36 UTC (permalink / raw)
To: jeff; +Cc: netdev, davem, akpm, Bruce Allan, Jeff Kirsher
From: Bruce Allan <bruce.w.allan@intel.com>
The removal of this bit of code was missed in an earlier patch submittal.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/e1000e/param.c | 2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/drivers/net/e1000e/param.c b/drivers/net/e1000e/param.c
index b0499f2..ed912e0 100644
--- a/drivers/net/e1000e/param.c
+++ b/drivers/net/e1000e/param.c
@@ -324,8 +324,6 @@ void __devinit e1000e_check_options(struct e1000_adapter *adapter)
adapter->itr = 20000;
break;
default:
- e1000_validate_option(&adapter->itr, &opt,
- adapter);
/*
* Save the setting, because the dynamic bits
* change itr.
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
` (5 preceding siblings ...)
2008-08-09 1:36 ` [PATCH 7/7] e1000e: remove unnecessary snippet missed in prior check_options update Jeff Kirsher
@ 2008-08-14 8:46 ` Jeff Garzik
6 siblings, 0 replies; 8+ messages in thread
From: Jeff Garzik @ 2008-08-14 8:46 UTC (permalink / raw)
To: Jeff Kirsher; +Cc: netdev, davem, akpm, Bruce Allan
Jeff Kirsher wrote:
> From: Bruce Allan <bruce.w.allan@intel.com>
>
> A number of users have mentioned they have tools that rely on a link-up
> indication having a return value of 1 rather than a non-zero value.
>
> Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
> ---
>
> drivers/net/e1000e/ethtool.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
> index cf9679f..e21c9e0 100644
> --- a/drivers/net/e1000e/ethtool.c
> +++ b/drivers/net/e1000e/ethtool.c
> @@ -177,7 +177,7 @@ static u32 e1000_get_link(struct net_device *netdev)
> u32 status;
>
> status = er32(STATUS);
> - return (status & E1000_STATUS_LU);
> + return (status & E1000_STATUS_LU) ? 1 : 0;
applied 1-7
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-08-14 8:46 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-09 1:35 [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Kirsher
2008-08-09 1:35 ` [PATCH 2/7] e1000e: Set InterruptThrottleRate to default when invalid value used Jeff Kirsher
2008-08-09 1:35 ` [PATCH 3/7] e1000e: Use skb_copy_to_linear_data_offset introduced in 2.6.22 Jeff Kirsher
2008-08-09 1:36 ` [PATCH 4/7] e1000e: Increase Tx timeout factor for 10Mbps Jeff Kirsher
2008-08-09 1:36 ` [PATCH 5/7] e1000e: increase minimum frame size allowed Jeff Kirsher
2008-08-09 1:36 ` [PATCH 6/7] e1000e: test for unusable MSI support Jeff Kirsher
2008-08-09 1:36 ` [PATCH 7/7] e1000e: remove unnecessary snippet missed in prior check_options update Jeff Kirsher
2008-08-14 8:46 ` [PATCH 1/7] e1000e: Return 1 instead of a non-zero value for link up indication Jeff Garzik
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).