21 Jun, 2013
21 commits
-
Allow the rdma_ucm to query the IB service ID formed or allocated by
the rdma_cm by exporting the cma_get_service_id() functionality.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
The current query_route call can return up to two path records. The
assumption being that one is the primary path, with optional support
for an alternate path. In both cases, the paths are assumed to be
reversible and are used to send CM MADs.With the ability to manually set IB path data, the rdma cm can
eventually be capable of using up to 6 paths per connection:forward primary, reverse primary,
forward alternate, reverse alternate,
reversible primary path for CM MADs
reversible alternate path for CM MADs.(It is unclear at this time if IB routing will complicate this) In
order to handle more flexible routing topologies, add a new command to
report any number of paths.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Allow converting from struct ib_sa_path_rec to the IB defined SA path
record wire format. This will be used to report path data from the
rdma cm into user space.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
The sockaddr structure for AF_IB is larger than sockaddr_in6. The
rdma cm user space ABI uses the latter to exchange address information
between user space and the kernel.To support querying for larger addresses, define a new query command
that exchanges data using sockaddr_storage, rather than sockaddr_in6.
Unlike the existing query_route command, the new command only returns
address information. Route (i.e. path record) data is separated.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
If an rdma_cm_id is bound to AF_IB, with a wild card address, only
listen on IB devices.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Allow the user to specify the qkey when using AF_IB. The qkey is
added to struct rdma_ucm_conn_param in place of a reserved field, but
for backwards compatability, is only accessed if the associated
rdma_cm_id is using AF_IB.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
If the source or destination address is AF_IB, then do not reserve a
portion of the private data in the IB CM REQ or SIDR REQ messages for
the cma header. Instead, all private data should be exported to the
user. When AF_IB is used, the rdma cm does not have sufficient
information to fill in the cma header. Additionally, this will be
necessary to support any IB connection through the rdma cm interface,Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
With the removal of SDP related code, we can merge cma_get_net_info()
with cma_save_net_info(), since we're only ever dealing with a single
header format.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
The SDP protocol was never merged upstream. Remove unused SDP related
code from the RDMA CM.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
cma_get_service_id() forms the service ID based on the port space and
port number of the rdma_cm_id. Extend the call to support AF_IB,
which contains the service ID directly. This will be needed to
support any arbitrary SID.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Allow rdma_resolve_route() to handle the case where the user specified
the source and destination addresses using AF_IB.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Allow the user to specify the remote address using AF_IB format. When
AF_IB is used, the remote address simply needs to be recorded, and no
resolution using ARP is done. The local address may still need to be
matched with a local IB device.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
If a user specifies AF_IB as the source address for a loopback
connection, limit the resolution to IB devices only.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Provide inline helpers to extract source and destination address data
from the rdma_cm_id.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
cma_resolve_loopback is called after an rdma_cm_id has been
bound to a specific sa_family and port. Once the
source sa_family for the id has been set, do not modify it.
Only the actual IP address portion of the source address
needs to be set.As part of this fix, we can simplify setting the source address
by moving the loopback address assignment from cma_resolve_loopback
to cma_bind_loopback. cma_bind_loopback is only invoked when
the source address is the loopback address.Finally, add loopback support for AF_IB as part of the change.
Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Modify rdma_bind_addr to allow the user to specify AF_IB when binding
to a device. AF_IB indicates that the user is not mapping an IP
address to the native IB addressing. (The mapping may have already
been done, or is not needed)Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
The AF_IB uses a 64-bit service id (SID), which the user can control
through the use of a mask. The rdma_cm will assign values to the
unmasked portions of the SID based on the selected port space and port
number.Because the IB spec divides the SID range into several regions, a
SID/mask combination may fall into one of the existing port space
ranges as defined by the RDMA CM IP Annex. Map the AF_IB SID to the
correct RDMA port space.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Add support for AF_IB to ip_addr_size, and rename the function to
account for the change. Give the compiler more control over whether
the call should be inline or not by moving the definition into the .c
file, removing the static inline, and exporting it.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
Enhance checks for loopback and any address to support AF_IB in
addition to AF_INET and AF_INT6. This will allow future patches to
use AF_IB when binding and resolving addresses.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier -
The rdma_cm only allows setting reuseaddr if the corresponding
rdma_cm_id is in the idle state. Allow setting this value in other
states. This brings the behavior more inline with sockets.Signed-off-by: Sean Hefty
Signed-off-by: Roland Dreier
20 Jun, 2013
19 commits
-
Pci core has been saved pm cap register offset by pdev->pm_cap in pci_pm_init()
in init path. So we can use pdev->pm_cap instead of using
pci_find_capability(pdev, PCI_CAP_ID_PM) for better performance and simplified code.Signed-off-by: Yijing Wang
Cc: Michael Chan
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: David S. Miller -
Pci core has been saved pm cap register offset by pdev->pm_cap in pci_pm_init()
in init path. So we can use pdev->pm_cap instead of using
pci_find_capability(pdev, PCI_CAP_ID_PM) for better performance and simplified code.Signed-off-by: Yijing Wang
Cc: "David S. Miller"
Cc: Patrick McHardy
Cc: Bill Pemberton
Cc: Greg Kroah-Hartman
Cc: netdev@vger.kernel.org (open list:NETWORKING DRIVERS)
Signed-off-by: David S. Miller -
Pci_enable_device() will set device power state to D0,
so it's no need to do it again in bnx2x_init_dev().
Also remove redundant PM Cap find code, because pci core
has been saved the pci device pm cap value.Signed-off-by: Yijing Wang
Cc: Eilon Greenstein
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Acked-by: Yuval Mintz
Signed-off-by: David S. Miller -
ETRAX_ETHERNET selects ETHERNET and MII, which depend on NETDEVICES.
I don't think anything should select NETDEVICES, so make it a
dependency. It also doesn't need to select or depend on ETHERNET,
which has nothing to do with the Ethernet library functions.BPCTL selects MII, which depends on NETDEVICES. But everything in the
drivers/staging/silicom directory is related to net devices, so make
NET_VENDOR_SILICOM depend on NETDEVICES and remove the now-redundant
dependencies on NET.Signed-off-by: Ben Hutchings
Signed-off-by: David S. Miller -
This has no dependency on any of the drivers under NET_CORE.
Signed-off-by: Ben Hutchings
Acked-by: Nicolas Ferre
Signed-off-by: David S. Miller -
All drivers that select MII also need to select NET_CORE because MII
depends on it. This is a bit ridiculous because NET_CORE is just a
menu option that doesn't enable any code by itself.There is also no need for it to be a visible option, since its users
all select it.Signed-off-by: Ben Hutchings
Acked-by: Jeff Kirsher
Signed-off-by: David S. Miller -
Also, cleanup bond_alb_handle_active_change() from 2 identical ifs.
Signed-off-by: Veaceslav Falico
Signed-off-by: David S. Miller -
be_find_vfs() is no longer needed as the common PCI calls provide the same
functionality.Signed-off-by: Sathya Perla
Signed-off-by: David S. Miller -
Check next packet availability by validating that HW has finished CQE
placement. This saves latency of another dma transaction performed to update
SB indexes.Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Signed-off-by: David S. Miller -
Adds ndo_ll_poll method and locking for FPs between LL and the napi.
When receiving a packet we use skb_mark_ll to record the napi it came from.
Add each napi to the napi_hash right after netif_napi_add().Signed-off-by: Dmitry Kravkov
Signed-off-by: Eilon Greenstein
Reviewed-by: Eric Dumazet
Signed-off-by: David S. Miller -
Signed-off-by: Amir Vadai
Signed-off-by: David S. Miller -
Add basic support for LLS.
Signed-off-by: Amir Vadai
Reviewed-by: Eric Dumazet
Signed-off-by: David S. Miller -
Refactor various ip tunnels xmit functions and extend iptunnel_xmit()
so that there is more code sharing.Signed-off-by: Pravin B Shelar
Signed-off-by: David S. Miller -
The only R8A7740 specific #ifdef hindering ARM multiplatform build is left in
sh_eth_rx(): it covers the code shifting Rx buffer descriptor word 0 by 16. Get
rid of the #ifdef by adding 'shift_rd0' field to the 'struct sh_eth_cpu_data',
making the shift dependent on it, and setting it to 1 for the R8A7740 case...Signed-off-by: Sergei Shtylyov
Signed-off-by: David S. Miller -
Fix the comment to 'enum TD_STS_BIT', reformat the values, and add a couple of
values missing before (though unused by the driver).Signed-off-by: Sergei Shtylyov
Signed-off-by: David S. Miller -
For SH7724 'eesipr_value' field initializer includes DMAC_M_RFRMER & DMAC_M_ECI
bits which are already contained in 0x01ff009f -- remove them.Signed-off-by: Sergei Shtylyov
Signed-off-by: David S. Miller -
The 'tx_error_check' field of 'struct sh_eth_cpu_data' is write-only, so remove
it along with the DEFAULT_TX_ERROR_CHECK macro.Signed-off-by: Sergei Shtylyov
Signed-off-by: David S. Miller -
The driver hasn't used NAPI so far; implement its support at last...
The patch was tested on Renesas R8A77781 BOCK-W board.
Signed-off-by: Sergei Shtylyov
Signed-off-by: David S. Miller -
sh_eth_interrupt() uses the same Rx interrupt mask twice to check the interrupt
status register -- #define EESR_RX_CHECK and use it instead.Signed-off-by: Sergei Shtylyov
Signed-off-by: David S. Miller