16 Aug, 2008
1 commit
-
Reported by Randy Dunlap.
Signed-off-by: David S. Miller
15 Aug, 2008
4 commits
-
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
In certain cases when ASF or other management firmware is running, the
chip may be configured to always strip out the VLAN tag even when
VLAN acceleration is not enabled. This causes some VLAN tagged
packets to be received by the host stack without any knowledge that
the original packet was VLAN tagged.We fix this by re-inserting the VLAN tag into the packet when necessary.
Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: Matt Carlson
Signed-off-by: David S. Miller -
Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: Matt Carlson
Signed-off-by: David S. Miller -
We should now be checking BNX2_FLAG_CAN_KEEP_VLAN to determine how
to set the VLAN rx tagging in the RX_MODE register.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: Matt Carlson
Signed-off-by: David S. Miller
19 Jul, 2008
3 commits
-
Signed-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
This patch will fix the following sparse warnings:
/home/benli/sparse/bnx2.c:297:8: warning: symbol 'val' shadows an earlier one
/home/benli/sparse/bnx2.c:286:60: originally declared here
/home/benli/sparse/bnx2.c:7461:7: warning: symbol 'i' shadows an earlier one
/home/benli/sparse/bnx2.c:7265:10: originally declared hereSigned-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Signed-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller
15 Jul, 2008
6 commits
-
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Add support for configuring secondary unicast addresses. There
are 4 additional perfect match filters which can be used for
secondary unicast address support.* Modified bnx2_set_mac_addr() to be more generic in handling
the setting of the perfect match filters
* Changed bnx2_set_rx_mode() to handle the unicast dev_addr_listSigned-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Negotiate with boot code and ASF firmware to see if it can
support keeping VLAN tags in the RX packets. If supported
by firmware, the VLAN tag will be kept in the RX packet
unless VLAN acceleration is registered.Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
ack=1 means wait for firmware acknowledgement, and ack=0
means don't wait. All current callers will set it to 1.In the next patch, new calls will set ack=0.
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
The device may be in D3-hot state and may crash if we try to
configure the speed settings by accessing the registers.Signed-off-by: Michael Chan
Signed-off-by: David S. Miller
20 Jun, 2008
7 commits
-
And update module description.
Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
All error handling in bnx2_open() can be consolidated.
Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
Enable multiple rx rings if MSI-X vectors are available. We enable
up to 7 rx rings.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
Use the same MSI-X handler to schedule NAPI. Change the dev_instance
void pointer to the bnx2_napi struct instead so we can have the proper
context for each MSI-X vector.Add a new bnx2_poll_msix() that is optimized for handling MSI-X
NAPI polling of rx/tx work only. Remove the old bnx2_tx_poll() that
is no longer needed. Each MSI-X vector handles 1 tx and 1 rx ring.
The first vector handles link events as well.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
Add hw_tx_cons_ptr and hw_rx_cons_ptr to speed up the retreival of
the tx and rx consumer index, since the MSI-X and default status
blocks have different structures.Combine status_blk and status_blk_msix into a union. We'll only use
one type of status block for each vector.Separate the code to detect more rx and tx work from the code to
detect link related work.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
In preparation for multi-ring support, rx ring variables are now put
in a separate bnx2_rx_ring_info struct. With MSI-X, we can support
multiple rx rings.The functions to allocate/free rx memory and to initialize rx rings
are now modified to handle multiple rings.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
In preparation for multi-ring support, tx ring variables are now put
in a separate bnx2_tx_ring_info struct. Multi tx ring will not be
enabled until it is fully supported by the stack. Only 1 tx ring
will be used at the moment.The functions to allocate/free tx memory and to initialize tx rings
are now modified to handle multiple rings.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller
14 Jun, 2008
1 commit
-
Conflicts:
drivers/net/smc911x.c
12 Jun, 2008
1 commit
-
If the RTNL is held when we invoke flush_scheduled_work() we could
deadlock. One such case is linkwatch, it is a work struct which tries
to grab the RTNL semaphore.The most common case are net driver ->stop() methods. The
simplest conversion is to instead use cancel_{delayed_}work_sync()
explicitly on the various work struct the driver uses.This is an OK transformation because these work structs are doing
things like resetting the chip, restarting link negotiation, and so
forth. And if we're bringing down the device, we're about to turn the
chip off and reset it anways. So if we cancel a pending work event,
that's fine here.Some drivers were working around this deadlock by using a msleep()
polling loop of some sort, and those cases are converted to instead
use cancel_{delayed_}work_sync() as well.Signed-off-by: David S. Miller
17 May, 2008
6 commits
-
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Instead of assigning values for the struct cpu_reg's at runtime,
we already know these values at compile time. Therefore, we can use
designated initializers, to initialize these structures and not have
to incur this assignment cost at run-time.Signed-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
To make the bnx2 code more consistent, all instances of
RX_COPY_THRESH have been changed to BNX2_RX_COPY_THRESH.Signed-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
The rx_offset field is set to a constant value and initialized
only once. By replacing all references to the rx_offset field,
we can eliminate rx_offset from the bnx2 structure. This will
save 4 bytes for every bnx2 instance.[Added parentheses to the definition of BNX2_RX_OFFSET, as noted
by Ben Hutchings.]Signed-off-by: Benjamin Li
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Add PCI recovery functions to the driver. The initial pci state is
also saved so the the MSI state can be restored during PCI recovery.Signed-off-by: Wendy Xiong
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Andy Gospodarek found that netconsole would
panic when resetting bnx2 devices.>From Andy:
"The issue is the bnx2_set_link in bnx2_init_nic will print a link-status
message before we are fully initialized and ready to start polling.
Polling is currently disabled in this state, but since the
__LINK_STATE_RX_SCHED is overloaded to not only try and disable polling
but also to make the system aware there is something waiting to be
polled, we really have to fix this in drivers.The problematic call is the one to netif_rx_complete as it tries to
remove an entry from the poll_list when there isn't one."While this netconsole problem should be fixed separately, we really
should not reset the PHY when changing ring sizes, MTU, or other
similar settings. The PHY reset causes several seconds of unnecessary
link disruptions.Signed-off-by: Michael Chan
Acked-by: Andy Gospodarek
Signed-off-by: David S. Miller
03 May, 2008
6 commits
-
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
The new RV2P firmware fixes 2 issues:
1. The jumbo rx buffer page size is now configurable and set to the
proper PAGE_SIZE. Before, it was assumed to be always 4K.2. Driver sometimes would crash when receiving jumbo packets mixed
with firmware management packets. This was caused by the old
firmware DMA'ing to the wrong address.Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
We should zero out the context memory for 5709 before each reset. When
we resume after suspend for example, the memory may not be zero and the
chip may not function correctly.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
The register BNX2_CTX_STATUS (0x1004) should be skipped on 5709 as it
contains reserved bits.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
On some remote PHY blade systems, the driver receives no initial link
interrupt. As a result, the GMII/MII MAC mode does not get setup properly.
To fix this problem, we add an initial poll of the link state after chip
reset.With this change, the setting of the initial carrier state in the init
code can be eliminated.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller -
bnx2_set_remote_link() should be called under bp->phy_lock to protect
against concurrent polling and interrupt calls. This change is needed
by the next patch which will add one initial poll of the remote PHY
link status.Signed-off-by: Michael Chan
Signed-off-by: Benjamin Li
Signed-off-by: David S. Miller
01 May, 2008
1 commit
-
drivers/net/8390.c:37:2: warning: returning void-valued expression
drivers/net/bnx2.c:1635:3: warning: returning void-valued expression
drivers/net/xen-netfront.c:1806:2: warning: returning void-valued expression
net/ipv4/tcp_hybla.c:105:3: warning: returning void-valued expression
net/ipv4/tcp_vegas.c:171:3: warning: returning void-valued expression
net/ipv4/tcp_veno.c:123:3: warning: returning void-valued expression
net/sysctl_net.c:85:2: warning: returning void-valued expressionSigned-off-by: Harvey Harrison
Acked-by: Alan Cox
Signed-off-by: David S. Miller
24 Feb, 2008
3 commits
-
Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
Because of some board issues, we need to disable parallel detect on
an HP blade. Without this patch, the link state can become stuck
when it goes into parallel detect mode.Signed-off-by: Michael Chan
Signed-off-by: David S. Miller -
The previous patches to workaround the 5706S on an HP blade were not
sufficient. The link state still does not change properly in some
cases. This patch adds polling to make it completely reliable.Signed-off-by: Michael Chan
Signed-off-by: David S. Miller
10 Feb, 2008
1 commit
-
gcc-3.4.4 on powerpc:
drivers/net/bnx2.c:67: error: version causes a section type conflict
Cc: Jeff Garzik
Cc: Sam Ravnborg
Signed-off-by: Andrew Morton
Signed-off-by: David S. Miller