* Re: [PATCH 1/3] netxen: Avoid firmware load in PCI probe
[not found] ` <20070828115603.166212155@netxen.com>
@ 2007-08-30 21:58 ` Arnaldo Carvalho de Melo
2007-08-31 10:53 ` Jeff Garzik
1 sibling, 0 replies; 6+ messages in thread
From: Arnaldo Carvalho de Melo @ 2007-08-30 21:58 UTC (permalink / raw)
To: dhananjay; +Cc: netdev, jeff, rob
Em Tue, Aug 28, 2007 at 05:23:25PM +0530, dhananjay@netxen.com escreveu:
> Loading firmware during PCI probe can lead to incorrect initialization,
> rendering the card unusable until next reboot. This was introduced a while
> ago as a workaround for firmware bug, a better workaround was submitted for
> this a while ago. So removing original hack that loads firmware during probe.
>
> Signed-off by: Dhananjay Phadke <dhananjay@netxen.com>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
I was having these problems and after applying this patch the NIC is
back working, thank you for fixing this!
- Arnaldo
> Index: netdev-2.6/drivers/net/netxen/netxen_nic_main.c
> ===================================================================
> --- netdev-2.6.orig/drivers/net/netxen/netxen_nic_main.c
> +++ netdev-2.6/drivers/net/netxen/netxen_nic_main.c
> @@ -639,10 +639,6 @@ netxen_nic_probe(struct pci_dev *pdev, c
> NETXEN_CRB_NORMALIZE(adapter,
> NETXEN_ROMUSB_GLB_PEGTUNE_DONE));
> /* Handshake with the card before we register the devices. */
> - writel(0, NETXEN_CRB_NORMALIZE(adapter, CRB_CMDPEG_STATE));
> - netxen_pinit_from_rom(adapter, 0);
> - msleep(1);
> - netxen_load_firmware(adapter);
> netxen_phantom_init(adapter, NETXEN_NIC_PEG_TUNE);
> }
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH 1/3] netxen: Avoid firmware load in PCI probe
[not found] ` <20070828115603.166212155@netxen.com>
2007-08-30 21:58 ` [PATCH 1/3] netxen: Avoid firmware load in PCI probe Arnaldo Carvalho de Melo
@ 2007-08-31 10:53 ` Jeff Garzik
1 sibling, 0 replies; 6+ messages in thread
From: Jeff Garzik @ 2007-08-31 10:53 UTC (permalink / raw)
To: dhananjay; +Cc: netdev, rob
applied patches 1-2
^ permalink raw reply [flat|nested] 6+ messages in thread
[parent not found: <20070828115603.981381010@netxen.com>]
* [PATCH 3/3] netxen: ethtool fixes
@ 2007-09-03 5:03 Dhananjay Phadke
2007-09-15 23:36 ` Jeff Garzik
0 siblings, 1 reply; 6+ messages in thread
From: Dhananjay Phadke @ 2007-09-03 5:03 UTC (permalink / raw)
To: netdev; +Cc: jeff, rob
Resubmitting the patch.
This patch improves ethtool support for printing correct ring statistics,
segmentation offload status, etc.
Signed-off by: Dhananjay Phadke <dhananjay@netxen.com>
Index: netdev-2.6/drivers/net/netxen/netxen_nic.h
===================================================================
--- netdev-2.6.orig/drivers/net/netxen/netxen_nic.h
+++ netdev-2.6/drivers/net/netxen/netxen_nic.h
@@ -918,7 +918,7 @@ struct netxen_adapter {
u16 link_duplex;
u16 state;
u16 link_autoneg;
- int rcsum;
+ int rx_csum;
int status;
spinlock_t stats_lock;
Index: netdev-2.6/drivers/net/netxen/netxen_nic_ethtool.c
===================================================================
--- netdev-2.6.orig/drivers/net/netxen/netxen_nic_ethtool.c
+++ netdev-2.6/drivers/net/netxen/netxen_nic_ethtool.c
@@ -518,17 +518,17 @@ netxen_nic_get_ringparam(struct net_devi
ring->rx_jumbo_pending = 0;
for (i = 0; i < MAX_RCV_CTX; ++i) {
ring->rx_pending += adapter->recv_ctx[i].
- rcv_desc[RCV_DESC_NORMAL_CTXID].rcv_pending;
+ rcv_desc[RCV_DESC_NORMAL_CTXID].max_rx_desc_count;
ring->rx_jumbo_pending += adapter->recv_ctx[i].
- rcv_desc[RCV_DESC_JUMBO_CTXID].rcv_pending;
+ rcv_desc[RCV_DESC_JUMBO_CTXID].max_rx_desc_count;
}
+ ring->tx_pending = adapter->max_tx_desc_count;
- ring->rx_max_pending = adapter->max_rx_desc_count;
- ring->tx_max_pending = adapter->max_tx_desc_count;
- ring->rx_jumbo_max_pending = adapter->max_jumbo_rx_desc_count;
+ ring->rx_max_pending = MAX_RCV_DESCRIPTORS;
+ ring->tx_max_pending = MAX_CMD_DESCRIPTORS_HOST;
+ ring->rx_jumbo_max_pending = MAX_JUMBO_RCV_DESCRIPTORS;
ring->rx_mini_max_pending = 0;
ring->rx_mini_pending = 0;
- ring->rx_jumbo_pending = 0;
}
static void
@@ -731,6 +731,19 @@ netxen_nic_get_ethtool_stats(struct net_
}
}
+static u32 netxen_nic_get_rx_csum(struct net_device *dev)
+{
+ struct netxen_adapter *adapter = netdev_priv(dev);
+ return adapter->rx_csum;
+}
+
+static int netxen_nic_set_rx_csum(struct net_device *dev, u32 data)
+{
+ struct netxen_adapter *adapter = netdev_priv(dev);
+ adapter->rx_csum = !!data;
+ return 0;
+}
+
struct ethtool_ops netxen_nic_ethtool_ops = {
.get_settings = netxen_nic_get_settings,
.set_settings = netxen_nic_set_settings,
@@ -755,4 +768,7 @@ struct ethtool_ops netxen_nic_ethtool_op
.get_strings = netxen_nic_get_strings,
.get_stats_count = netxen_nic_get_stats_count,
.get_ethtool_stats = netxen_nic_get_ethtool_stats,
+ .get_rx_csum = netxen_nic_get_rx_csum,
+ .set_rx_csum = netxen_nic_set_rx_csum,
+ .get_ufo = ethtool_op_get_ufo,
};
Index: netdev-2.6/drivers/net/netxen/netxen_nic_main.c
===================================================================
--- netdev-2.6.orig/drivers/net/netxen/netxen_nic_main.c
+++ netdev-2.6/drivers/net/netxen/netxen_nic_main.c
@@ -408,6 +408,7 @@ netxen_nic_probe(struct pci_dev *pdev, c
/* This will be reset for mezz cards */
adapter->portnum = pci_func_id;
adapter->status &= ~NETXEN_NETDEV_STATUS;
+ adapter->rx_csum = 1;
netdev->open = netxen_nic_open;
netdev->stop = netxen_nic_close;
Index: netdev-2.6/drivers/net/netxen/netxen_nic_init.c
===================================================================
--- netdev-2.6.orig/drivers/net/netxen/netxen_nic_init.c
+++ netdev-2.6/drivers/net/netxen/netxen_nic_init.c
@@ -1118,10 +1118,13 @@ netxen_process_rcv(struct netxen_adapter
skb = (struct sk_buff *)buffer->skb;
- if (likely(netxen_get_sts_status(desc) == STATUS_CKSUM_OK)) {
+ if (likely(adapter->rx_csum &&
+ netxen_get_sts_status(desc) == STATUS_CKSUM_OK)) {
adapter->stats.csummed++;
skb->ip_summed = CHECKSUM_UNNECESSARY;
- }
+ } else
+ skb->ip_summed = CHECKSUM_NONE;
+
skb->dev = netdev;
if (desc_ctx == RCV_DESC_LRO_CTXID) {
/* True length was only available on the last pkt */
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-09-15 23:36 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20070828115324.839681763@netxen.com>
[not found] ` <20070828115603.166212155@netxen.com>
2007-08-30 21:58 ` [PATCH 1/3] netxen: Avoid firmware load in PCI probe Arnaldo Carvalho de Melo
2007-08-31 10:53 ` Jeff Garzik
[not found] ` <20070828115603.981381010@netxen.com>
2007-08-31 10:51 ` [PATCH 3/3] netxen: ethtool fixes Jeff Garzik
2007-08-31 12:12 ` Dhananjay Phadke
2007-09-03 5:03 Dhananjay Phadke
2007-09-15 23:36 ` 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).