| Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
When !port_enabled, defer the write to reconfigure_mac_wrapper.
Whilst here, simplify the logic now that efx_start_port() always calls
efx_reconfigure_port().
From: Steve Hodgson <[email protected]>
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
This was originally a kludge to fix broken locking, which has since
been fixed properly.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Include PMA/PMD in loopback self-tests as intended.
Add NVRAM checksum validation and include it in self-tests.
Add register self-tests.
Run PHY self-tests where available.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
This will support register self-tests.
From: Steve Hodgson <[email protected]>
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Move more code from efx_reset() into efx_reset_down() and efx_reset_up().
Stop propagating MAC/PHY setting failures from efx_reset_down() and
efx_reset_up() as these should not be fatal.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Some functions return an error code which is always 0. Change their
return types to void and simplify their callers accordingly.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Update comment on the dummy operation implementations.
Line up the board operation initialisers.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
This allows updating PHY firmware for one interface without removing
all other interfaces handled by the driver.
Replace tx_disabled flags and 10Xpress status enumeration with flags in
enum efx_phy_mode.
Prevent an interface from being brought up while in PHY flash mode.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Make efx_process_channel() and falcon_process_eventq() return the
number of packets received rather than updating the quota, consistent
with new NAPI.
Since channels and RX queues are mapped one-to-one, remove return
value from falcon_handle_rx_event() and add a warning for events
with the wrong RX queue number.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
It is redundant with efx_channel::channel.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Currently each channel can have at most one RX queue, so go straight to
that one.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
We have long since given up doing RSS on Falcon A1 and therefore we
would always write the default value of 0.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Rename efx_nic::rss_queues to the more obvious n_rx_queues
Remove efx_rx_queue::used and other stuff that's redundant with it.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
efx_channel::has_interrupt is redundant with efx_channel::used_flags.
Remove efx_test_eventq() because it is now obviously unreachable.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Extend the SPI device setup code to support this.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
gcc will automatically inline static functions with only one caller, and
may inline other functions depending on the kernel configuration and size
of the intermediate code.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Squashed nested structures.
Renamed remaining_len to out_len, ifc.len to in_len, header_length to
header_len.
Moved ipv4_id into the group of output variables where it belongs.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Replace (cond ? 1 : 0) with cond or !!cond as appropriate, and
(cond ? 0 : 1) with !cond.
Remove some redundant boolean temporaries.
Rename one field that looks like a flag but isn't.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Remove unmap_addr since it can be calculated from dma_addr, len and
unmap_len. This saves 4-16 bytes.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Add efx_poll_loopback() function to test for successful completion of test.
Change efx_test_loopback() to end the test after 1 ms if
efx_poll_loopback() indicates success, and otherwise to wait for 100 ms
as before.
While we're here, rename efx_{rx,tx}_loopback() to
efx_{begin,end}_loopback() which more accurately reflect their
purpose.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Removed log messages that are redundant with calling functions.
Fixed bitwise or-ing of return codes.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
This was making noise during 10Xpress self-test.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
These were clearly bogus.
From: Steve Hodgson <[email protected]>
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
efx.c does not use hardware workarounds.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Exclude assumed size of RX control frames from rx_bad_bytes.
Exclude assumed size of TX control frames from tx_good_bytes for
consistency with rx_good_bytes.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
We believed that some valid SNAP frames were being marked as invalid.
In fact this is not the case and no workaround is needed.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Currently the board initialisation includes 2 delays of 1 second each.
Usually it is unnecessary to wait that long, so check before doing so.
Correct some of the comments and log messages while we're here.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
efx_test_loopback() used "|" to combine the results of the RX and TX
phases. If both phases fail with different error codes, this results
in a bogus error code.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Checksum generation is an attribute of our hardware TX queues, not TX
descriptors. We previously used a single queue and turned checksum
generation on or off as requested through ethtool. However, this can
result in regenerating checksums in raw packets that should not be
modified. We now create 2 hardware TX queues with checksum generation
on or off. They are presented to the net core as one queue since it
does not know how to select between them.
The self-test verifies that a bad checksum is unaltered on the queue
with checksum generation off.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
This means the compiler doesn't need to use real division instructions.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Use of the net_device::priv field is deprecated.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Add per-device dma_mapping_ops support for CONFIG_X86_64 as POWER
architecture does:
This enables us to cleanly fix the Calgary IOMMU issue that some devices
are not behind the IOMMU (http://lkml.org/lkml/2008/5/8/423).
I think that per-device dma_mapping_ops support would be also helpful for
KVM people to support PCI passthrough but Andi thinks that this makes it
difficult to support the PCI passthrough (see the above thread). So I
CC'ed this to KVM camp. Comments are appreciated.
A pointer to dma_mapping_ops to struct dev_archdata is added. If the
pointer is non NULL, DMA operations in asm/dma-mapping.h use it. If it's
NULL, the system-wide dma_ops pointer is used as before.
If it's useful for KVM people, I plan to implement a mechanism to register
a hook called when a new pci (or dma capable) device is created (it works
with hot plugging). It enables IOMMUs to set up an appropriate
dma_mapping_ops per device.
The major obstacle is that dma_mapping_error doesn't take a pointer to the
device unlike other DMA operations. So x86 can't have dma_mapping_ops per
device. Note all the POWER IOMMUs use the same dma_mapping_error function
so this is not a problem for POWER but x86 IOMMUs use different
dma_mapping_error functions.
The first patch adds the device argument to dma_mapping_error. The patch
is trivial but large since it touches lots of drivers and dma-mapping.h in
all the architecture.
This patch:
dma_mapping_error() doesn't take a pointer to the device unlike other DMA
operations. So we can't have dma_mapping_ops per device.
Note that POWER already has dma_mapping_ops per device but all the POWER
IOMMUs use the same dma_mapping_error function. x86 IOMMUs use device
argument.
[[email protected]: fix sge]
[[email protected]: fix svc_rdma]
[[email protected]: build fix]
[[email protected]: fix bnx2x]
[[email protected]: fix s2io]
[[email protected]: fix pasemi_mac]
[[email protected]: fix sdhci]
[[email protected]: build fix]
[[email protected]: fix sparc]
[[email protected]: fix ibmvscsi]
Signed-off-by: FUJITA Tomonori <[email protected]>
Cc: Muli Ben-Yehuda <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Avi Kivity <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
|
|
Using multiple cores in the same package to handle received traffic
does not appear to provide a performance benefit. Therefore use CPU
topology information to count CPU packages and use that as the default
number of RX queues and interrupts. We rely on interrupt balancing to
spread the interrupts across packages.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
This avoids deadlock in case a reset is triggered during self-test.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
As recommended by Jean Delvare:
- Increase timeout to 50 ms
- Leave adapter class clear so that unwanted drivers do not probe our bus
- Use strlcpy() for name initialisation
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
Now that we have a specific lock to protect the network
device unicast and multicast lists, remove extraneous
grabs of the TX lock in cases where the code only needs
address list protection.
Signed-off-by: David S. Miller <[email protected]>
|
|
Add netif_addr_{lock,unlock}{,_bh}() helpers.
Use them to protect operations that operate on or read
the network device unicast and multicast address lists.
Also use them in cases where the code simply wants to
block calls into the driver's ->set_rx_mode() and
->set_multicast_list() methods.
Signed-off-by: David S. Miller <[email protected]>
|
|
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/smc911x.c
|
|
RX queue flush can fail if traffic continues to arrive. Recover by
performing an invisible reset.
Signed-off-by: Ben Hutchings <[email protected]>
Signed-off-by: Jeff Garzik <[email protected]>
|
|
master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/tg3.c
drivers/net/wireless/rt2x00/rt2x00dev.c
net/mac80211/ieee80211_i.h
|