android_kernel_xiaomi_sm8350/drivers/net
Steve Wise f8b0dfd152 RDMA/cxgb3: Support peer-2-peer connection setup
Open MPI, Intel MPI and other applications don't respect the iWARP
requirement that the client (active) side of the connection send the
first RDMA message.  This class of application connection setup is
called peer-to-peer.  Typically once the connection is setup, _both_
sides want to send data.

This patch enables supporting peer-to-peer over the chelsio RNIC by
enforcing this iWARP requirement in the driver itself as part of RDMA
connection setup.

Connection setup is extended, when the peer2peer module option is 1,
such that the MPA initiator will send a 0B Read (the RTR) just after
connection setup.  The MPA responder will suspend SQ processing until
the RTR message is received and reply-to.

In the longer term, this will be handled in a standardized way by
enhancing the MPA negotiation so peers can indicate whether they
want/need the RTR and what type of RTR (0B read, 0B write, or 0B send)
should be sent.  This will be done by standardizing a few bits of the
private data in order to negotiate all this.  However this patch
enables peer-to-peer applications now and allows most of the required
firmware and driver changes to be done and tested now.

Design:

 - Add a module option, peer2peer, to enable this mode.

 - New firmware support for peer-to-peer mode:

	- a new bit in the rdma_init WR to tell it to do peer-2-peer
	  and what form of RTR message to send or expect.

	- process _all_ preposted recvs before moving the connection
	  into rdma mode.

	- passive side: defer completing the rdma_init WR until all
	  pre-posted recvs are processed.  Suspend SQ processing until
	  the RTR is received.

	- active side: expect and process the 0B read WR on offload TX
	  queue. Defer completing the rdma_init WR until all
	  pre-posted recvs are processed.  Suspend SQ processing until
	  the 0B read WR is processed from the offload TX queue.

 - If peer2peer is set, driver posts 0B read request on offload TX
   queue just after posting the rdma_init WR to the offload TX queue.

 - Add CQ poll logic to ignore unsolicitied read responses.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2008-04-29 13:46:52 -07:00
..
appletalk drivers/net/appletalk: use time_before, time_before_eq, etc 2008-04-19 18:15:41 -07:00
arcnet drivers/net/arcnet/arcnet.c: use time_* macros 2008-03-28 22:14:15 -04:00
arm Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-25 12:28:28 -07:00
atlx [netdrvr] atlx: code movement: move atl1 parameter parsing 2008-04-25 02:08:52 -04:00
bonding netdev: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
can
chelsio annotate chelsio 2008-01-28 15:10:29 -08:00
cris CRIS v10: drivers/net/cris/eth_v10.c rename LED defines to CRIS_LED to avoid name clash. 2008-02-08 11:16:44 +01:00
cxgb3 RDMA/cxgb3: Support peer-2-peer connection setup 2008-04-29 13:46:52 -07:00
e1000 e1000: convert uint16_t style integers to u16 2008-04-16 20:41:45 -04:00
e1000e e1000e: Increment version to 0.2.1 2008-04-25 02:08:05 -04:00
ehea ehea: make things static 2008-04-25 02:08:53 -04:00
fec_8xx
fs_enet phy: Change mii_bus id field to a string 2008-04-16 20:09:35 -04:00
hamradio Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-23 12:23:45 -07:00
ibm_emac
ibm_newemac ibm_newemac: Increase MDIO timeouts 2008-04-25 02:08:56 -04:00
igb igb: save and restore pcie/msi state to support EEH recovery 2008-04-25 02:08:04 -04:00
irda net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
ixgb ixgb: convert uint16_t style integers to u16 2008-04-16 20:41:44 -04:00
ixgbe ixgbe: save and restore pcie/msi state to support EEH recovery 2008-04-25 02:07:13 -04:00
ixp2000
mlx4 mlx4_core: Add a way to set the "collapsed" CQ flag 2008-04-29 13:46:50 -07:00
myri10ge Remove duplicated unlikely() in IS_ERR() 2008-04-29 08:06:25 -07:00
netxen Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-25 12:28:28 -07:00
pcmcia axnet_cs: change debugging level for "Too much work at interrupt" message. 2008-03-05 06:28:49 -05:00
phy phylib: Add support for board-level PHY fixups 2008-04-25 02:08:52 -04:00
skfp skfp annotations 2008-03-26 00:18:44 -04:00
tokenring Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-14 02:30:23 -07:00
tulip net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
usb net: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:15:50 -04:00
wan WAN: Fix confusing insmod error code for C101 too. 2008-04-25 02:08:10 -04:00
wireless wireless: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
3c59x.c
3c501.c 3c501: Further coding style fixes 2008-03-17 08:11:03 -04:00
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c 3c509: convert to isa_driver and pnp_driver 2008-03-28 22:14:07 -04:00
3c515.c
3c523.c
3c523.h
3c527.c Convert asm/semaphore.h users to linux/semaphore.h 2008-04-18 22:22:54 -04:00
3c527.h
7990.c
7990.h
8139cp.c
8139too.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
8390.c [8390]: Fix build error. 2008-03-22 18:33:28 -07:00
8390.h
82596.c
a2065.c
a2065.h
ac3200.c drivers/net/ac3200.c: replace init_module&cleanup_module with module_init&module_exit 2008-03-05 18:50:41 -08:00
acenic_firmware.h
acenic.c
acenic.h
amd8111e.c
amd8111e.h
apne.c drivers/net/apne.c: replace init_module&cleanup_module with module_init&module_exit 2008-03-05 18:50:16 -08:00
ariadne.c
ariadne.h
at1700.c /drivers/net/at1700.c replaced init_module&cleanup_module with module_init&module_exit 2008-03-17 07:49:27 -04:00
atarilance.c /drivers/net/atarilance.c replaced init_module&cleanup_module with module_init&module_exit 2008-03-17 07:49:28 -04:00
atp.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
atp.h
au1000_eth.c phy: Change mii_bus id field to a string 2008-04-16 20:09:35 -04:00
au1000_eth.h
ax88796.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
b44.c ssb: Fix usage of struct device used for DMAing 2008-04-15 15:04:35 -04:00
b44.h
bfin_mac.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
bfin_mac.h EMAC driver: use simpler comment headers and strip out information that is maintained in the scm's log 2008-02-03 04:28:48 -08:00
bmac.c
bmac.h
bnx2_fw2.h [BNX2]: Update firmware. 2008-01-31 19:27:17 -08:00
bnx2_fw.h [BNX2]: Update firmware. 2008-01-31 19:27:17 -08:00
bnx2.c [BNX2]: Update version to 1.7.4. 2008-02-23 19:49:48 -08:00
bnx2.h [BNX2]: Disable parallel detect on an HP blade. 2008-02-23 19:48:57 -08:00
bnx2x_fw_defs.h [BNX2X]: Correct Link management 2008-02-28 11:51:50 -08:00
bnx2x_hsi.h [BNX2X]: Correct Link management 2008-02-28 11:51:50 -08:00
bnx2x_init_values.h
bnx2x_init.h [BNX2X]: Prevent PCI queue overflow 2008-02-28 11:57:29 -08:00
bnx2x_reg.h [BNX2X]: Correct Link management 2008-02-28 11:51:50 -08:00
bnx2x.c BNX2X: Correct bringing chip out of reset 2008-04-09 15:25:46 -07:00
bnx2x.h [BNX2X]: Fix Xmit bugs 2008-02-28 11:57:55 -08:00
bsd_comp.c
cassini.c [CASSINI]: Use shorter list_splice_init() macro for brevity. 2008-03-23 22:47:53 -07:00
cassini.h
cpmac.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
cs89x0.c drivers/net/cs89x0.c: compilation warning fix 2008-02-23 23:55:05 -05:00
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c misc drivers/net annotations 2008-03-26 00:18:43 -04:00
defxx.h
depca.c
depca.h
dl2k.c
dl2k.h Fix dl2k constants 2008-02-01 20:54:03 +11:00
dm9000.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
dm9000.h
dummy.c
e100.c net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
e2100.c
eepro100.c
eepro.c
eexpress.c MAINTAINERS: remove Adam Fritzler, remove his email address in other sources 2008-02-03 16:36:24 +02:00
eexpress.h
enc28j60_hw.h
enc28j60.c net/enc28j60: oops fix 2008-03-05 18:51:19 -08:00
epic100.c epic100 endianness annotations and fixes 2008-03-17 07:56:38 -04:00
eql.c
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
fec_mpc52xx.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
fec_mpc52xx.h
fec.c m68knommu: fix fec driver interrupt races 2008-03-04 08:04:11 -08:00
fec.h
forcedeth.c forcedeth: realtek phy crossover detection 2008-04-25 02:08:57 -04:00
gianfar_ethtool.c
gianfar_mii.c phy: Change mii_bus id field to a string 2008-04-16 20:09:35 -04:00
gianfar_mii.h
gianfar_sysfs.c
gianfar.c gianfar: Fix skb allocation strategy 2008-04-25 02:08:56 -04:00
gianfar.h gianfar: Support NAPI for TX Frames 2008-04-16 20:06:50 -04:00
hamachi.c net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
hp100.c
hp100.h
hp-plus.c
hp.c
hplance.c
hplance.h
hydra.c
ibmlana.c ibmlana_init_one() must be __devinit 2008-02-03 04:26:12 -08:00
ibmlana.h
ibmveth.c netdev: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
ibmveth.h
ifb.c [NET] ifb: set separate lockdep classes for queue locks 2008-03-20 17:05:13 -07:00
ioc3-eth.c [IOC3] Fix section missmatch 2008-03-17 08:11:41 -04:00
ipg.c drivers/net/ipg.c: remove unused variable 2008-03-17 07:56:42 -04:00
ipg.h
isa-skeleton.c
iseries_veth.c [POWERPC] properly declare onstack completion in iseries veth 2008-04-17 07:46:11 +10:00
jazzsonic.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
Kconfig [NET] Kconfig: Rename MIKROTIK_RB500 -> MIKROTIK_RB532 2008-04-28 17:14:33 +01:00
korina.c korina: misc cleanup 2008-04-25 02:08:51 -04:00
lance.c
lasi_82596.c
lib8390.c Fix a small number of "memeber" typoes. 2008-02-03 15:12:15 +02:00
lib82596.c
LICENSE.SRC
lne390.c
loopback.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
lp486e.c
mac89x0.c
mac8390.c
macb.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
macb.h
mace.c
mace.h
macmace.c
macsonic.c
macvlan.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
Makefile Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-04-21 15:50:49 -07:00
meth.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
meth.h
mii.c
mipsnet.c Fix/Rewrite of the mipsnet driver] 2008-02-03 04:28:10 -08:00
mv643xx_eth.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c natsemi: fix MMIO for PPC 44x platforms 2008-04-17 15:31:31 -04:00
ne2.c
ne2k-pci.c more misannotations: ne2k-pci 2008-03-17 07:56:33 -04:00
ne3210.c
ne-h8300.c
ne.c
netconsole.c netconsole: only set CON_PRINTBUFFER if the user specifies a netconsole 2008-04-15 00:49:04 -07:00
netx-eth.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
ni52.c ni52: more unbreaking 2008-03-26 00:18:04 -04:00
ni52.h ni52: unbreak scp_struct 2008-03-26 00:18:00 -04:00
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c niu: Add support for Neptune FEM/NEM cards for C10 server blades 2008-04-24 21:09:20 -07:00
niu.h niu: Add support for Neptune FEM/NEM cards for C10 server blades 2008-04-24 21:09:20 -07:00
ns83820.c
pasemi_mac_ethtool.c pasemi_mac: basic ethtool support 2008-03-05 16:34:41 -06:00
pasemi_mac.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-04-21 15:50:49 -07:00
pasemi_mac.h pasemi_mac: basic ethtool support 2008-03-05 16:34:41 -06:00
pci-skeleton.c pci-skeleton: Misc fixes to build neatly 2008-02-03 04:28:43 -08:00
pcnet32.c pcnet32: Use print_mac 2008-02-11 10:28:31 -05:00
plip.c plip: replace spin_lock_irq with spin_lock_irqsave in irq context 2008-04-01 11:16:04 -07:00
ppp_async.c
ppp_deflate.c [PPP]: Sparse warning fixes. 2008-01-28 15:11:27 -08:00
ppp_generic.c ppp_generic: use stats from net_device structure 2008-04-23 18:54:01 -07:00
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c [PPP]: Sparse warning fixes. 2008-01-28 15:11:27 -08:00
pppoe.c netdev: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
pppol2tp.c netdev: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
pppox.c
ps3_gelic_net.c [POWERPC] PS3: Gelic network driver Wake-on-LAN support 2008-04-01 20:43:08 +11:00
ps3_gelic_net.h [POWERPC] PS3: Gelic network driver Wake-on-LAN support 2008-04-01 20:43:08 +11:00
ps3_gelic_wireless.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
ps3_gelic_wireless.h PS3: gelic: Add wireless support for PS3 2008-02-11 10:30:05 -05:00
qla3xxx.c qla3xxx: convert byte order of constant instead of variable 2008-03-26 00:19:43 -04:00
qla3xxx.h
r6040.c r6040 endianness fixes 2008-03-17 07:56:27 -04:00
r8169.c
rionet.c [RAPIDIO] Auto-probe the RapidIO system size 2008-04-29 19:40:28 +10:00
rrunner.c
rrunner.h
s2io-regs.h
s2io.c S2io: Removed rx_lock and put_lock 2008-04-25 02:07:11 -04:00
s2io.h S2io: Removed rx_lock and put_lock 2008-04-25 02:07:11 -04:00
saa9730.c
saa9730.h
sb1000.c sb1000.c: make const arrays static 2008-04-16 20:41:44 -04:00
sb1250-mac.c phy: Change mii_bus id field to a string 2008-04-16 20:09:35 -04:00
sc92031.c sc92031: use netdev_alloc_skb 2008-04-16 20:41:35 -04:00
seeq8005.c
seeq8005.h
sgiseeq.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
sgiseeq.h
sis190.c sis190: read the mac address from the eeprom first 2008-02-23 23:57:47 -05:00
sis900.c
sis900.h
skge.c netxen, phy/marvell, skge: minor checkpatch fixes 2008-03-25 23:53:24 -04:00
skge.h
sky2.c sky2: missing chip name for Yukon Supreme 2008-04-12 01:52:35 -04:00
sky2.h sky2: fix LED management 2008-02-24 00:07:39 -05:00
slhc.c [PPP]: Sparse warning fixes. 2008-01-28 15:11:27 -08:00
slip.c
slip.h
smc91x.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
smc91x.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 2008-04-17 23:56:30 -07:00
smc911x.c smc911x: test after postfix decrement fails in smc911x_{reset,drop_pkt} 2008-04-25 02:08:55 -04:00
smc911x.h
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
sni_82596.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c spidernet: revise link status logging 2008-04-16 20:06:50 -04:00
spider_net.h spidernet: change interrupt masks 2008-04-16 20:06:50 -04:00
starfire_firmware.h
starfire_firmware.pl
starfire.c [NET]: Undo code bloat in hot paths due to print_mac(). 2008-04-08 16:50:44 -07:00
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c net/sunbmac.c section fix 2008-02-03 04:26:15 -08:00
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c [SUNGEM]: Fix NAPI assertion failure. 2008-03-23 03:35:12 -07:00
sungem.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c net/sunqe.c section fix 2008-02-03 04:26:14 -08:00
sunqe.h
sunvnet.c drivers/net/sunvnet.c:print_version() must be __devinit 2008-02-03 04:26:13 -08:00
sunvnet.h
tc35815.c tc35815: Statistics cleanup 2008-04-17 15:31:31 -04:00
tehuti_fw.h
tehuti.c drivers/net/tehuti: use proper capability check for raw IO access 2008-04-29 11:45:16 -07:00
tehuti.h
tg3.c Remove duplicated unlikely() in IS_ERR() 2008-04-29 08:06:25 -07:00
tg3.h tg3: 5701 DMA corruption fix 2008-04-19 18:12:33 -07:00
tlan.c tlan: add static to function definitions 2008-02-23 23:57:46 -05:00
tlan.h
tsi108_eth.c net drivers: fix platform driver hotplug/coldplug 2008-04-25 02:08:54 -04:00
tsi108_eth.h
tun.c tun: Multicast handling in tun_chr_ioctl() needs proper locking. 2008-04-24 03:44:43 -07:00
typhoon-firmware.h
typhoon.c [netdrvr] typhoon: typhoon_resume - remove call to start_queue 2008-04-25 02:08:08 -04:00
typhoon.h
ucc_geth_ethtool.c
ucc_geth_mii.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-04-21 15:50:49 -07:00
ucc_geth_mii.h
ucc_geth.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-25 12:28:28 -07:00
ucc_geth.h phy: Change mii_bus id field to a string 2008-04-16 20:09:35 -04:00
veth.c [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS. 2008-03-26 04:39:53 +09:00
via-rhine.c [netdrvr] via-rhine: Use register offset definition for WOLcgClr 2008-02-24 00:07:37 -05:00
via-velocity.c via-velocity: fix vlan receipt 2008-04-25 02:45:23 -04:00
via-velocity.h big-endian support for via-velocity 2008-02-03 04:26:27 -08:00
virtio_net.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-04-11 08:10:24 -07:00
wd.c
xen-netfront.c xen: Add compatibility aliases for frontend drivers 2008-04-24 23:57:33 +02:00
yellowfin.c net: use get/put_unaligned_* helpers 2008-04-29 08:06:27 -07:00
znet.c
zorro8390.c