linux/drivers/net
Jack Morgenstein 00f5ce99dc mlx4: Use port management change event instead of smp_snoop
The port management change event can replace smp_snoop.  If the
capability bit for this event is set in dev-caps, the event is used
(by the driver setting the PORT_MNG_CHG_EVENT bit in the async event
mask in the MAP_EQ fw command).  In this case, when the driver passes
incoming SMP PORT_INFO SET mads to the FW, the FW generates port
management change events to signal any changes to the driver.

If the FW generates these events, smp_snoop shouldn't be invoked in
ib_process_mad(), or duplicate events will occur (once from the
FW-generated event, and once from smp_snoop).

In the case where the FW does not generate port management change
events smp_snoop needs to be invoked to create these events.  The flow
in smp_snoop has been modified to make use of the same procedures as
in the fw-generated-event event case to generate the port management
events (LID change, Client-rereg, Pkey change, and/or GID change).

Port management change event handling required changing the
mlx4_ib_event and mlx4_dispatch_event prototypes; the "param" argument
(last argument) had to be changed to unsigned long in order to
accomodate passing the EQE pointer.

We also needed to move the definition of struct mlx4_eqe from
net/mlx4.h to file device.h -- to make it available to the IB driver,
to handle port management change events.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2012-07-10 09:47:10 -07:00
..
appletalk
arcnet
bonding bonding: show all the link status of slaves 2012-06-17 16:23:54 -07:00
caif caif-hsi: Add missing return in error path 2012-06-25 16:07:23 -07:00
can can: flexcan: use be32_to_cpup to handle the value of dt entry 2012-06-27 11:12:07 +02:00
cris
dsa
ethernet mlx4: Use port management change event instead of smp_snoop 2012-07-10 09:47:10 -07:00
fddi
hamradio
hippi
hyperv net/hyperv: Use wait_event on outstanding sends during device removal 2012-06-04 13:50:38 -04:00
irda Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-05-22 19:22:50 -07:00
phy phy/micrel: change phy_id_mask for KSZ9021 and KS8001 2012-06-19 00:31:36 -07:00
plip
ppp ppp: avoid false drop_monitor false positives 2012-05-19 02:32:30 -04:00
slip
team
usb ipheth: add support for iPad 2012-06-25 16:20:41 -07:00
vmxnet3
wan Staging tree pull request for 3.5-rc1 2012-05-22 16:34:21 -07:00
wimax
wireless Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-06-28 11:20:31 -07:00
xen-netback xen/netback: Calculate the number of SKB slots required correctly 2012-05-24 16:22:53 -04:00
dummy.c dummy: fix rcu_sched self-detected stalls 2012-06-11 01:12:04 -07:00
eql.c
ifb.c
Kconfig tokenring: delete all remaining driver support 2012-05-15 20:23:16 -04:00
LICENSE.SRC
loopback.c
macvlan.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-16 22:17:37 -04:00
macvtap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2012-05-16 22:17:37 -04:00
Makefile tokenring: delete all remaining driver support 2012-05-15 20:23:16 -04:00
mdio.c
mii.c
netconsole.c
rionet.c
sb1000.c
Space.c drivers/net: delete all code/drivers depending on CONFIG_MCA 2012-05-17 16:37:41 -04:00
sungem_phy.c
tun.c drivers/net: Convert compare_ether_addr to ether_addr_equal 2012-05-10 23:33:01 -04:00
veth.c
virtio_net.c virtio-net: fix a race on 32bit arches 2012-06-10 20:23:20 -07:00
xen-netfront.c xen/netfront: teardown the device before unregistering it. 2012-06-27 01:25:41 -07:00