07 Oct, 2010
8 commits
-
This is the new FW HSI blob and the relevant definitions without logic changes.
It also included code adaptation for new HSI. New features are not enabled.New FW/HSI includes:
- Support for 57712 HW
- Future support for VF (not used)
- Improvements in FW interrupts scheme
- FW FCoE hooks (stubs for future usage)Signed-off-by: Dmitry Kravkov
Signed-off-by: Michael Chan
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
New firmware files for all bnx2x devices
Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Initialize the rings only during cnic_uio_open() and shut them down
during cnic_uio_close(). Check for the new bit CNIC_LCL_FL_RINGS_INITED
before checking for ring interrupt.Signed-off-by: Michael Chan
Signed-off-by: Dmitry Kravkov
Signed-off-by: David S. Miller -
The pfid (physical function ID) is the same as PCI function on production
devices. The pfid for future devices will be different and will be used
for internal memory offsets.Signed-off-by: Michael Chan
Signed-off-by: Dmitry Kravkov
Signed-off-by: David S. Miller -
Preparation work for upcoming firmware interface changes.
Signed-off-by: Michael Chan
Signed-off-by: Dmitry Kravkov
Signed-off-by: David S. Miller -
Commit 2ddaad397c47de012dfb956b0c05540da1a0dde5 entitled "tg3: Use
netif_set_real_num_{rx,tx}_queues()" added a new call to
netif_set_real_num_rx_queues in tg3_enable_msix(). This call also needs
to be added to the legacy path to correctly reflect the actual number of
rx queues.Signed-off-by: Matt Carlson
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller
06 Oct, 2010
13 commits
-
As suggested by Stephen Hemminger:
1) Made functions and data structures static wherever possible.
2) Removed unused code.Signed-off-by: Debashis Dutt
Signed-off-by: Rasesh Mody
Signed-off-by: David S. Miller -
This fix handles the case when IRQ handler is called (for shared IRQs)
even before the driver is ready to handle interrupts.Signed-off-by: Debashis Dutt
Signed-off-by: Rasesh Mody
Signed-off-by: David S. Miller -
fib_lookup() converted to be called in RCU protected context, no
reference taken and released on a contended cache line (fib_clntref)fib_table_lookup() and fib_semantic_match() get an additional parameter.
struct fib_info gets an rcu_head field, and is freed after an rcu grace
period.Stress test :
(Sending 160.000.000 UDP frames on same neighbour,
IP route cache disabled, dual E5540 @2.53GHz,
32bit kernel, FIB_HASH) (about same results for FIB_TRIE)Before patch :
real 1m31.199s
user 0m13.761s
sys 23m24.780sAfter patch:
real 1m5.375s
user 0m14.997s
sys 15m50.115sBefore patch Profile :
13044.00 15.4% __ip_route_output_key vmlinux
8438.00 10.0% dst_destroy vmlinux
5983.00 7.1% fib_semantic_match vmlinux
5410.00 6.4% fib_rules_lookup vmlinux
4803.00 5.7% neigh_lookup vmlinux
4420.00 5.2% _raw_spin_lock vmlinux
3883.00 4.6% rt_set_nexthop vmlinux
3261.00 3.9% _raw_read_lock vmlinux
2794.00 3.3% fib_table_lookup vmlinux
2374.00 2.8% neigh_resolve_output vmlinux
2153.00 2.5% dst_alloc vmlinux
1502.00 1.8% _raw_read_lock_bh vmlinux
1484.00 1.8% kmem_cache_alloc vmlinux
1407.00 1.7% eth_header vmlinux
1406.00 1.7% ipv4_dst_destroy vmlinux
1298.00 1.5% __copy_from_user_ll vmlinux
1174.00 1.4% dev_queue_xmit vmlinux
1000.00 1.2% ip_output vmlinuxAfter patch Profile :
13712.00 15.8% dst_destroy vmlinux
8548.00 9.9% __ip_route_output_key vmlinux
7017.00 8.1% neigh_lookup vmlinux
4554.00 5.3% fib_semantic_match vmlinux
4067.00 4.7% _raw_read_lock vmlinux
3491.00 4.0% dst_alloc vmlinux
3186.00 3.7% neigh_resolve_output vmlinux
3103.00 3.6% fib_table_lookup vmlinux
2098.00 2.4% _raw_read_lock_bh vmlinux
2081.00 2.4% kmem_cache_alloc vmlinux
2013.00 2.3% _raw_spin_lock vmlinux
1763.00 2.0% __copy_from_user_ll vmlinux
1763.00 2.0% ip_output vmlinux
1761.00 2.0% ipv4_dst_destroy vmlinux
1631.00 1.9% eth_header vmlinux
1440.00 1.7% _raw_read_unlock_bh vmlinuxReference results, if IP route cache is enabled :
real 0m29.718s
user 0m10.845s
sys 7m37.341s25213.00 29.5% __ip_route_output_key vmlinux
9011.00 10.5% dst_release vmlinux
4817.00 5.6% ip_push_pending_frames vmlinux
4232.00 5.0% ip_finish_output vmlinux
3940.00 4.6% udp_sendmsg vmlinux
3730.00 4.4% __copy_from_user_ll vmlinux
3716.00 4.4% ip_route_output_flow vmlinux
2451.00 2.9% __xfrm_lookup vmlinux
2221.00 2.6% ip_append_data vmlinux
1718.00 2.0% _raw_spin_lock_bh vmlinux
1655.00 1.9% __alloc_skb vmlinux
1572.00 1.8% sock_wfree vmlinux
1345.00 1.6% kfree vmlinuxSigned-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Allow sysadmins to configure the number of multicast
membership report sent on a link failure event.Signed-off-by: Flavio Leitner
Signed-off-by: David S. Miller -
The IGMP specs states that if the system receives a
membership report, it shouldn't send another for the
next minute. However, if a link failure happens right
after that, the backup slave and the switch connected
to this slave will not know about the multicast and
the traffic will hang for about a minute.This patch fixes it to rejoin multicast groups immediately
after a failover restoring the multicast traffic.Signed-off-by: Flavio Leitner
Signed-off-by: David S. Miller -
During a failover, the IGMP membership is sent to update
the switch restoring the traffic, but it misses groups added
to VLAN devices running on top of bonding devices.This patch changes it to iterate over all VLAN devices
on top of it sending IGMP memberships too.Signed-off-by: Flavio Leitner
Signed-off-by: David S. Miller -
Removing the msleep() call in check_sqs() function, and replacing by a wait queue.
Signed-off-by: Breno Leitao
Signed-off-by: David S. Miller -
This patch just remove a msleep loop and change to wait queue,
making the code cleaner.Signed-off-by: Breno Leitao
Acked-by: David Howells
Signed-off-by: David S. Miller -
Following patch fixes warnings reported by `make namespacecheck`
Reported by Stephen Hemminger
CC: Stephen Hemminger
Signed-off-by: Emil Tantilov
Acked-by: Greg Rose
Tested-by: Jeff Pieper
Signed-off-by: Jeff Kirsher
Signed-off-by: David S. Miller -
Userspace applications can already request to receive timestamps with:
setsockopt(sockfd, SOL_SOCKET, SO_TIMESTAMP, ...)Although setsockopt() returns zero (success), timestamps are not added to the
ancillary data. This patch fixes that on SOCK_DGRAM and SOCK_SEQPACKET Unix
sockets.Signed-off-by: Alban Crequy
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
David
This is the first step for RCU conversion of neigh code.
Next patches will convert hash_buckets[] and "struct neighbour" to RCU
protected objects.Thanks
[PATCH net-next] net neigh: RCU conversion of neigh hash table
Instead of storing hash_buckets, hash_mask and hash_rnd in "struct
neigh_table", a new structure is defined :struct neigh_hash_table {
struct neighbour **hash_buckets;
unsigned int hash_mask;
__u32 hash_rnd;
struct rcu_head rcu;
};And "struct neigh_table" has an RCU protected pointer to such a
neigh_hash_table.This means the signature of (*hash)() function changed: We need to add a
third parameter with the actual hash_rnd value, since this is not
anymore a neigh_table field.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
neigh_delete() and neigh_add() dont need to touch device refcount,
we hold RTNL when calling them, so device cannot disappear under us.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
In various situations, a device provides a packet to our stack and we
drop it before it enters protocol stack :
- softnet backlog full (accounted in /proc/net/softnet_stat)
- bad vlan tag (not accounted)
- unknown/unregistered protocol (not accounted)We can handle a per-device counter of such dropped frames at core level,
and automatically adds it to the device provided stats (rx_dropped), so
that standard tools can be used (ifconfig, ip link, cat /proc/net/dev)This is a generalization of commit 8990f468a (net: rx_dropped
accounting), thus reverting it.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller
05 Oct, 2010
19 commits
-
Qemu supports up to UIO_MAXIOV s/g so we have to match that because guest
drivers may rely on this.Allocate indirect and log arrays dynamically to avoid using too much contigious
memory and make the length of hdr array to match the header length since each
iovec entry has a least one byte.Test with copying large files w/ and w/o migration in both linux and windows
guests.Signed-off-by: Jason Wang
Signed-off-by: Michael S. Tsirkin -
Do this instead of subverting fields in skb proper.
The macros that could very easily match variable or function
names were also just asking for trouble.Signed-off-by: David S. Miller
-
Another exported symbol only used in one file
Signed-off-by: Stephen Hemminger
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller -
fib_rules_cleanup_ups is only defined and used in one place.
Signed-off-by: Stephen Hemminger
Acked-by: Eric Dumazet
Signed-off-by: David S. Miller -
Code style cleanups before upcoming functional changes.
C99 initializer for fib_props array.Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Make wimax variables and functions local if possible.
Compile tested only.This also removes a couple of unused EXPORT_SYMBOL.
If this breaks some out of tree code, please fix that
by putting the code in the kernel tree.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
This driver has several pieces of dead code (found by running
make namespacecheck). This patch removes them.Signed-off-by: Stephen Hemminger
Signed-off-by: David S. Miller -
Remove duplicated include.
Signed-off-by: Nicolas Kaiser
Acked-by: Sjur Braendeland
Signed-off-by: David S. Miller -
The kernel doesn't have a symbol called BCM63XX. There is a symbol
BCM63XX_ENET (introduced in 9b1fc55a0500, 6 weeks after 09bb9aa0ed that
introduced BCM63XX_PHY), but the driver compiles without that, too.Cc: Maxime Bizon
Cc: Florian Fainelli
Cc: David S. Miller
Cc: Ralf Baechle
Signed-off-by: Uwe Kleine-König
Signed-off-by: David S. Miller -
MODULE_DEVICE_TABLE only expands to something if it's compiled
for a module. So when building-in support for the phys, the
mdio_device_id tables are unused. Marking them with __maybe_unused
fixes the following warnings:drivers/net/phy/bcm63xx.c:134: warning: 'bcm63xx_tbl' defined but not used
drivers/net/phy/broadcom.c:933: warning: 'broadcom_tbl' defined but not used
drivers/net/phy/cicada.c:162: warning: 'cicada_tbl' defined but not used
drivers/net/phy/davicom.c:222: warning: 'davicom_tbl' defined but not used
drivers/net/phy/et1011c.c:114: warning: 'et1011c_tbl' defined but not used
drivers/net/phy/icplus.c:137: warning: 'icplus_tbl' defined but not used
drivers/net/phy/lxt.c:226: warning: 'lxt_tbl' defined but not used
drivers/net/phy/marvell.c:724: warning: 'marvell_tbl' defined but not used
drivers/net/phy/micrel.c:234: warning: 'micrel_tbl' defined but not used
drivers/net/phy/national.c:154: warning: 'ns_tbl' defined but not used
drivers/net/phy/qsemi.c:141: warning: 'qs6612_tbl' defined but not used
drivers/net/phy/realtek.c:82: warning: 'realtek_tbl' defined but not used
drivers/net/phy/smsc.c:257: warning: 'smsc_tbl' defined but not used
drivers/net/phy/ste10Xp.c:135: warning: 'ste10Xp_tbl' defined but not used
drivers/net/phy/vitesse.c:195: warning: 'vitesse_tbl' defined but not usedSigned-off-by: Uwe Kleine-König
Signed-off-by: David S. Miller -
rtnl_dereference() is used in contexts where RTNL is held, to fetch an
RCU protected pointer.Updates to this pointer are prevented by RTNL, so we dont need
smp_read_barrier_depends() and the ACCESS_ONCE() provided in
rcu_dereference_check().rtnl_dereference() is mainly a macro to document the locking invariant.
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Signed-off-by: David S. Miller
Acked-by: Simon Horman -
ingress being not used very much, and net_device->ingress_queue being
quite a big object (128 or 256 bytes), use a dynamic allocation if
needed (tc qdisc add dev eth0 ingress ...)dev_ingress_queue(dev) helper should be used only with RTNL taken.
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Setting mtu < 68 is not supported.
Signed-off-by: Sritej Velaga
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
Port mode setting is not required for Qlogic CNA adapters.
Signed-off-by: Sritej Velaga
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
Signed-off-by: Sucheta Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
o desc->vlan_tci is in __le16 format. Doing htons and
cpu_to_le64 again on vlan_tci, result in invalid value on ppc.Signed-off-by: Sucheta Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
ipaddress in ifa->ifa_address field are in big endian format.
Also device requires ip address in big endian only.Signed-off-by: Sucheta Chakraborty
Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller -
regs_buff[i] and diag_registers[j] array should use different index
variable.Signed-off-by: Amit Kumar Salecha
Signed-off-by: David S. Miller