History log of /drivers/infiniband/hw/ocrdma/ocrdma_main.c
Revision Date Author Comments
e5dc9409933b21732a8c370e9f7cf79c2c92cbcb 29-Sep-2014 Li RongQing <roy.qing.li@gmail.com> RDMA/ocrdma: Remove a unused-label warning

If IPV6 is disabled, we get the warning:

drivers/infiniband/hw/ocrdma/ocrdma_main.c:650:1: warning: label ‘err_notifier6’ defined but not used [-Wunused-label]

Signed-off-by: Li RongQing <roy.qing.li@gmail.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
7ec11e0a14ae0a7a8fdce78860a70f25508de395 22-Aug-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Add default GID at index 0

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
b8806324ea0b242bcf0cf5740f2ceb1e56381c36 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Initialize the GID table while registering the device

Current GID table gets updated only at the time of inet notification.
Fix this by initializing the table at the time of device registration.

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Somnath Kotur <somnath.kotur@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
4f1df8440d26bafe0be6ef4dbf17162a1263d3fc 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Increase the size of STAG array in dev structure to 16K

HW can support 16K STAG entries. Change this max limit. Also, move
this array out of ocrdma_dev to reduce the size of this structure.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
efe4593720829066667397f540d50baffc706435 10-Jun-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Handle shutdown event from be2net driver

be2net driver sends a shutdown event to ocrdma during shutdown/reboot.
As part of event processing, ocrdma calls close() and remove() to free
all the resources associated with ocrdma. This also frees irqs used by
ocrdma.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
4808b184fd54d64995046b83864809536a058e7a 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Add hca_type and fixing fw_version string in device atrributes

Add a new entry under sysfs for getting the HW type.
Add a new-line character for the FW version string

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
31dbdd9af58c63c7f8376a0fa680f5fc1b6cce98 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Query and initalize the PFC SL

This patch implements routine to query the PFC priority from the
adapter port.

Following are the changes implemented:

* A new FW command is implemented to query the operational/admin DCBX
configuration from the FW and obtain active priority(service
level).
* Adds support for the async event reported by FW when the PFC
priority changes. Service level is re-initialized during modify_qp
or create_ah, based on this event.
* Maintain SL value in ocrdma_dev structure and refer that as and
when needed.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2d8f57d56f5850a75d6225519e77f75ad9949f25 18-Mar-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Unregister inet notifier when unloading ocrdma

Unregister the inet notifier during ocrdma unload to avoid a panic after
driver unload.

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
fad51b7d361b4f1b439aa10fa258a35dac62b297 04-Feb-2014 Devesh Sharma <Devesh.Sharma@Emulex.Com> RDMA/ocrdma: Code clean-up

Clean up code. Also modifying GSI QP to error during ocrdma_close is fixed.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
334b8db3a6c57bec78bcaacef3b1658bfc6e2efe 04-Feb-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Display FW version

Adding a sysfs file for getting the FW version.

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
a51f06e1679e2abac2e8a817884e60edc18c5c86 04-Feb-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Query controller information

Issue mailbox commands to query ocrdma controller information and phy
information and print them while adding ocrdma device.

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
0154410bd456affe21f31ab27278847461316e0b 04-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Update version string

Update the driver vrsion string and node description string

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
b6b87d2e6930b6dbb926998d3250c61cef1ec562 04-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: ABI versioning between ocrdma and be2net

While loading RoCE driver be2net driver should check for ABI version
to catch functional incompatibilities.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
21c3391a9adfaddd00481a1d03bf30fc1304e292 04-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Read ASIC_ID register to select asic_gen

ocrdma driver selects execution path based on sli_family and asic
generation number. This introduces code to read the asic gen number
from pci register instead of obtaining it from the Emulex NIC driver.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
09de3f1313a30d8a22e488c9a5b96a9560cae96d 03-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Fix load time panic during GID table init

We should use rdma_vlan_dev_real_dev() instead of using vlan_dev_real_dev()
when building the GID table for a vlan interface.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
31ab8acbf6618c89fec77f7706df7daaa319feb5 20-Jan-2014 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Move ocrdma_inetaddr_event outside of "#if CONFIG_IPV6"

This fixes the build if IPV6 isn't enabled.

Signed-off-by: Roland Dreier <roland@purestorage.com>
37721d8501a9a1fbe87527c24d127a914b29fd7f 12-Dec-2013 Moni Shoua <monis@mellanox.com> RDMA/ocrdma: Populate GID table with IP based gids

This patch is similar in spirit to the "IB/mlx4: Use IBoE (RoCE) IP
based GIDs in the port GID table" patch.

Changes to inet4 and inet6 addresses for the host are monitored and if
the address is associated with an ocrdma device then a gid is added or
deleted from the device's gid table. The gid format will be a IPv4 to
IPv6 mapped or the IPv6 address.

Cc: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Moni Shoua <monis@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
1852d1da3b4723d7db0d490f54c07442b3e1c452 06-Sep-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Fix a crash in rmmod

1) ocrdma_remove_free() is called from a call_rcu callback funtion
context, which can be a bottom-half context. So the code in
ocrdma_remove_free should not sleep.

But ocrdma_cleanup_hw() can sleep, So move it ocrdma_remove()
instead of ocrdma_remove_free.

2) Fix a couple of kbuild test robot warnings.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2b50176d11866e59208a4ed1623b3fc0ca322690 09-Oct-2013 Joe Perches <joe@perches.com> IB: Remove unnecessary semicolons

These aren't necessary after switch blocks.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
38754397152e0e9ab0d2854064ef0ff4deabdd7e 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Add ABI versioning support

Add ABI versioning support between driver and userspace library.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
cffce99051b80c90630a9fff662a1b25e278069d 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Dont use PD 0 for userpace CQ DB

Create_CQ verb doesn't provide a PD pointer. So, until now we are
creating all (both userspace and kernel) CQ DB regions from PD0. This
will result in mmapping PD0 to applications. A rogue userspace
application can mess things up.

Also more serious issues is even the be2net NIC uses PD0.

This patch addresses this problem by:

1) Create a PD page for every userspace application when the
alloc_ucontext is called. This will be destroyed in
dealloc_ucontext.
2) All CQs for that context will use the PD allocated in ucontext.
3) The first create_PD call from application will result in returning
the PD address from its ucontext (no new PD will be created).
4) For subsecquent create_pd calls from application, we create new PDs for
the application.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
7c33880c3cb2cda816d4d64852c6a81018b9bc1f 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Add support for fast register work requests (FRWR)

Also get the max_srq value from query_config mailbox response.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
ef99c4c2ed63cb0deb94ea70fb47c2d6294e302e 10-Jun-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Replace ocrdma_err with pr_err

Remove private macro ocrdma_err and replace with standard pr_err.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
cffcd59f15db02b341e50da653860afa0ba11a83 28-Feb-2013 Tejun Heo <tj@kernel.org> IB/ocrdma: convert to idr_alloc()

Convert to the much saner new idr interface.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Roland Dreier <roland@purestorage.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
d549f55f2e132e3d1f1288ce4231f45f12988bbf 11-Aug-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Don't call vlan_dev_real_dev() for non-VLAN netdevs

If CONFIG_VLAN_8021Q is not set, then vlan_dev_real_dev() just goes BUG(),
so we shouldn't call it unless we're actually dealing with a VLAN netdev.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
d90f9b3591b3b5fa86178e318008fc1c531a84dc 06-Jul-2012 Roland Dreier <roland@purestorage.com> IB: Use IS_ENABLED(CONFIG_IPV6)

Instead of testing defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)

Signed-off-by: Roland Dreier <roland@purestorage.com>
6ab6827ee99937834cc268298ee4eab1a651569e 08-Jun-2012 Parav Pandit <parav.pandit@emulex.com> RDMA/ocrdma: Fixed GID table for vlan and events

1. Fix reporting GID table addition events.
2. Enable vlan based GID entries only when VLAN is enabled at compile
time (test CONFIG_VLAN_8021Q / CONFIG_VLAN_8021Q_MODULE).

Signed-off-by: Parav Pandit <parav.pandit@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
7ad5e449b96bd82f406ed4657a64c8f72a48896d 28-May-2012 Devendra Naga <devendra.aaru@gmail.com> RDMA/ocrdma: Remove unnecessary version.h includes

"make versioncheck" shows:

drivers/infiniband/hw/ocrdma/ocrdma_main.c: 29 linux/version.h not needed.
drivers/infiniband/hw/ocrdma/ocrdma_verbs.h: 31 linux/version.h not needed.

Signed-off-by: Devendra Naga <devendra.aaru@gmail.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
349556692df946b9cd5b84f2b0fa09b98732e986 03-May-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Fix build with IPV6=n

When IPV6 is not enabled:

ERROR: "register_inet6addr_notifier" [drivers/infiniband/hw/ocrdma/ocrdma.ko] undefined!
ERROR: "unregister_inet6addr_notifier" [drivers/infiniband/hw/ocrdma/ocrdma.ko] undefined!

Fix this by wrapping the inet6 calls in #ifdef IPV6. Also make the
ocrdma module depend on (IPV6 || IPV6=n) to forbid the case of modular
ipv6 but built-in ocrdma (which can't work, because ocrdma calls ipv6
functions).

Reported-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Roland Dreier <roland@purestorage.com>
3e4d60a82e7ab4cd6e212b6834c6a48c79731957 28-Apr-2012 Sasha Levin <levinsasha928@gmail.com> RDMA/ocrdma: Don't sleep in atomic notifier handler

Events sent to ocrdma_inet6addr_event() are sent from an atomic context,
therefore we can't try to lock a mutex within the notifier callback.

We could just switch the mutex to a spinlock since all it does it
protect a list, but I've gone ahead and switched the list to use RCU
instead. I couldn't fully test it since I don't have IB hardware, so
if it doesn't fully work for some reason let me know and I'll switch
it back to using a spinlock.

Signed-off-by: Sasha Levin <levinsasha928@gmail.com>

[ Fixed locking in ocrdma_add(). - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>
abe3afacc5762065244421569ad86afef11813bb 16-Apr-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Make needlessly global functions/structs static

Signed-off-by: Roland Dreier <roland@purestorage.com>
fe2caefcdf5869f308c102e3d64d40683bfad711 20-Mar-2012 Parav Pandit <parav.pandit@emulex.com> RDMA/ocrdma: Add driver for Emulex OneConnect IBoE RDMA adapter

Signed-off-by: Parav Pandit <parav.pandit@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>