[go: nahoru, domu]

  • Home
  • History
  • Annotate
  • only in /drivers/infiniband/hw/ocrdma/
History log of /drivers/infiniband/hw/ocrdma/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2eb7f910c158fd675ab33aff67904512779996e8 19-Oct-2014 Linus Torvalds <torvalds@linux-foundation.org> Merge tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

Pull infiniband/RDMA updates from Roland Dreier:
- large set of iSER initiator improvements
- hardware driver fixes for cxgb4, mlx5 and ocrdma
- small fixes to core midlayer

* tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (47 commits)
RDMA/cxgb4: Fix ntuple calculation for ipv6 and remove duplicate line
RDMA/cxgb4: Add missing neigh_release in find_route
RDMA/cxgb4: Take IPv6 into account for best_mtu and set_emss
RDMA/cxgb4: Make c4iw_wr_log_size_order static
IB/core: Fix XRC race condition in ib_uverbs_open_qp
IB/core: Clear AH attr variable to prevent garbage data
RDMA/ocrdma: Save the bit environment, spare unncessary parenthesis
RDMA/ocrdma: The kernel has a perfectly good BIT() macro - use it
RDMA/ocrdma: Don't memset() buffers we just allocated with kzalloc()
RDMA/ocrdma: Remove a unused-label warning
RDMA/ocrdma: Convert kernel VA to PA for mmap in user
RDMA/ocrdma: Get vlan tag from ib_qp_attrs
RDMA/ocrdma: Add default GID at index 0
IB/mlx5, iser, isert: Add Signature API additions
Target/iser: Centralize ib_sig_domain setting
IB/iser: Centralize ib_sig_domain settings
IB/mlx5: Use extended internal signature layout
IB/iser: Set IP_CSUM as default guard type
IB/iser: Remove redundant assignment
IB/mlx5: Use enumerations for PI copy mask
...
05df78059b3b991036666de9ee124d5cbd9e375d 05-Oct-2014 Jes Sorensen <Jes.Sorensen@redhat.com> RDMA/ocrdma: Save the bit environment, spare unncessary parenthesis

Parenthesis around constants serves no purpose, save the bits!

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_sli.h
de12348535a93535c408de396d3505541ca5e0d6 05-Oct-2014 Jes Sorensen <Jes.Sorensen@redhat.com> RDMA/ocrdma: The kernel has a perfectly good BIT() macro - use it

No need to re-invent the wheel here

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_sli.h
beb9b703811736adfc608034d1f0d5cf0c8a7073 05-Oct-2014 Jes Sorensen <Jes.Sorensen@redhat.com> RDMA/ocrdma: Don't memset() buffers we just allocated with kzalloc()

Get rid of obfuscating ocrdma_alloc_mqe() kzalloc() wrapper as all it
did was to make it less visible that the structure was already cleared
on allocation.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
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>
crdma_main.c
1b76d38332271d5a0468ae5e465c5ea534c473c6 05-Sep-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Convert kernel VA to PA for mmap in user

In some platforms, when iommu is enabled, the bus address returned by
dma_alloc_coherent is different than the physical address. ocrdma
should use physical address for mmap-ing the queue memory for the
applications.

This patch adds the use of virt_to_phys() at all such places where
kernel buffer is mapped to user process context.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
bf67472ca1fac19c81367601bd4ba7d17bdc9f6e 22-Aug-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Get vlan tag from ib_qp_attrs

After IP-based GID changes, VLAN id can be obtained from
qp_attr->vlan_id.

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>
crdma_hw.c
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>
crdma_main.c
28596c9722289b2f98fa83a2e4351eb0a031b953 08-Oct-2014 Linus Torvalds <torvalds@linux-foundation.org> Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial

Pull "trivial tree" updates from Jiri Kosina:
"Usual pile from trivial tree everyone is so eagerly waiting for"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
Remove MN10300_PROC_MN2WS0038
mei: fix comments
treewide: Fix typos in Kconfig
kprobes: update jprobe_example.c for do_fork() change
Documentation: change "&" to "and" in Documentation/applying-patches.txt
Documentation: remove obsolete pcmcia-cs from Changes
Documentation: update links in Changes
Documentation: Docbook: Fix generated DocBook/kernel-api.xml
score: Remove GENERIC_HAS_IOMAP
gpio: fix 'CONFIG_GPIO_IRQCHIP' comments
tty: doc: Fix grammar in serial/tty
dma-debug: modify check_for_stack output
treewide: fix errors in printk
genirq: fix reference in devm_request_threaded_irq comment
treewide: fix synchronize_rcu() in comments
checkstack.pl: port to AArch64
doc: queue-sysfs: minor fixes
init/do_mounts: better syntax description
MIPS: fix comment spelling
powerpc/simpleboot: fix comment
...
f0c2c225dfe9dfb668fe72eadabb8a3ec74ca036 05-Sep-2014 devesh.sharma@emulex.com <devesh.sharma@emulex.com> RDMA/ocrdma: Use right macro in query AH

ocrdma_query_ah() does not use correct macro, and checks the wrong bit
for the validity of address handle in vector table. Fix this.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_ah.c
1be528bcb88d0b854dda1d60b31f4f8f7310f034 05-Sep-2014 devesh.sharma@emulex.com <devesh.sharma@emulex.com> RDMA/ocrdma: Resolve L2 address when creating user AH

Because of IP-based GIDs, userspace AHs must have MAC and VLAN ID
resolved separately. Presently, user AHs are broken for ocrdma. This
patch resolves L2 addresses while creating user AH and obtains the
right DMAC and VLAN ID before creating AH.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_ah.c
f93439e476d012b2503dbb07fe0fc675bcbff099 09-Jun-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Do not skip setting deferred_arm

When ib_request_notify_cq() is called for the first time, ocrdma tries
to skip setting deffered_arm flag. This may lead CQ to an un-armed
state thus never generating a CQ event and leaving consumer hung.

This patch removes the part of code that skips setting deferred_arm.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
d6a488f21c0f3c44bfbb2339a75159ee55aa2b6f 09-Jun-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Report correct value of max_fast_reg_page_list_len

Fix ocrdma_query_device() to report correct value of max_fast_reg_page_list_len.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
1a84db567aeeb232daad598c7aa2334dda0176b7 29-Aug-2014 Masanari Iida <standby24x7@gmail.com> treewide: fix errors in printk

This patch fix spelling typo in printk.

Signed-off-by: Masanari Iida <standby24x7@gmail.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
crdma_verbs.c
96c51abecc4379273fb751ff44eb57e4b243b5f0 02-Jul-2014 Mitesh Ahuja <mitesh.ahuja@emulex.com> RDMA/ocrdma: report asic-id in query device

Ocrdma does not report hw_ver when query_device is issued. This patch
adds a meaningful value to this field.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
8ac0c7c7a13b16e7c49fea812819a7f807a202fe 02-Jul-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Update sli data structure for endianness

Update the sli specific mailbox command request/response data
sturcures to fix endianness issues.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_sli.h
0ea8726250cae3defa0c1065801017f26a269c93 02-Jul-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Obtain SL from device structure

Currently, driver obtains service level value from ah_attr->sl field.
However, this field is set to zero all the times from rdma-cm. This
patch allows create_ah to obtain service level from dev->sl.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_ah.c
crdma_hw.c
741742ed71c2cc12573ea6cf41ef1fbb3b2efe97 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Update the ocrdma module version string

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
1b09a0c29034eaf68bad9f8821531ebd194af3f7 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Fix a sparse warning

Fix the warning about the usage of plain integer as NULL pointer.

Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
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>
crdma_main.c
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>
crdma.h
crdma_main.c
crdma_sli.h
920de55d40df30131c2b32850a5417d81b0efc7e 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Add missing adapter mailbox opcodes

Fix the Statistics command opcode. Also specify the opcode of each
command for better readablilty.

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>
crdma_sli.h
033edd4dff23708c35120d9297fc898ef284bc7d 10-Jun-2014 Mitesh Ahuja <mitesh.ahuja@emulex.Com> RDMA/ocrdma: Return proper value for max_mr_size

Update the max_mr_size with proper value. Corrected the response
structure of query config mailbox command.

Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.Com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_sli.h
crdma_verbs.c
6dab02648c4c8bb58b35efccf29291d7970aeb68 10-Jun-2014 Mitesh Ahuja <mitesh.ahuja@emulex.Com> RDMA/ocrdma: Do proper cleanup even if FW is in error state

If any mailbox command reports timeout, save the state in the driver,
to prevent issuing any more commands to the HW. Do proper cleanup
even if FW is in error state.

Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.Com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_hw.c
crdma_verbs.c
f252b5dc36e26368c7161f32ef304c30cd2d1f6c 10-Jun-2014 Mitesh Ahuja <mitesh.ahuja@emulex.Com> RDMA/ocrdma: Allow only SEND opcode in case of UD QPs

Prevent posting opcodes other than send and send immediate on the UD QPs.

Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.Com>
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>
crdma_verbs.c
a96ffb1de9d656ce7083277a8badaa1082813498 10-Jun-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Avoid reporting wrong completions in case of error CQEs

During cable pull test with a mount over NFS/RDMA, the driver was
reporting error completions when there were no pending requests in the
SQ and RQ. This was triggering a host crash because of reporting
wrong work req id. Avoid this crash by adding a check for SQ and RQ
empty condition and prevent reporting completions if queues are empty.

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>
crdma_verbs.c
daac96815e969bd70ed5ad21231be2fc5d99506d 10-Jun-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Delete AH table if ocrdma_init_hw fails after AH table creation

Cleanup the AH table in error path, if HW initialization fails
after AH table creation.

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>
crdma_hw.c
a53d77a33494a3d1d5c797df311c975a05d69ef3 10-Jun-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Remove hardcoding of the max DPP QPs supported

Removing hardcoded value of max dpp qps and calculate the same from
doorbell page size and WQE size.

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>
crdma_sli.h
crdma_verbs.c
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>
crdma_main.c
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>
crdma_main.c
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>
crdma.h
crdma_ah.c
crdma_hw.c
crdma_hw.h
crdma_main.c
crdma_sli.h
f50f31e42fb772b62e209cf6ff5254b1bc02b756 10-Jun-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Avoid posting DPP requests for RDMA READ

Rollback the patch which allows DPP posting of RDMA READ since this
path is not yet stable in FW.

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>
crdma_hw.c
0cc65dd6918f529ae2c19be95b86dec19549b7ed 16-Apr-2014 Duan Jiong <duanj.fnst@cn.fujitsu.com> RDMA/ocrdma: Convert to use simple_open()

This removes an open-coded duplicate of simple_open().

Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_stats.c
f7eaa7ed8fd46542275cf249cd934a366f6556bb 03-Apr-2014 Roland Dreier <roland@purestorage.com> Merge branches 'core', 'cxgb4', 'ip-roce', 'iser', 'misc', 'mlx4', 'nes', 'ocrdma', 'qib', 'sgwrapper', 'srp' and 'usnic' into for-next
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>
crdma_main.c
7a1e89d8b793feda96754fd3ba5079c4ba3862ee 18-Mar-2014 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Fix warnings about pointer <-> integer casts

We should cast pointers to and from unsigned long to turn them into ints.

Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
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>
crdma.h
crdma_abi.h
crdma_ah.c
crdma_hw.c
crdma_main.c
crdma_sli.h
crdma_verbs.c
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>
crdma_main.c
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>
akefile
crdma.h
crdma_hw.c
crdma_hw.h
crdma_main.c
crdma_sli.h
crdma_stats.c
crdma_stats.h
bbc5ec524eecf8af95b81c3c1d15cbc672568b4e 04-Feb-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Support non-embedded mailbox commands

Added a routine to issue non-embedded mailbox commands for handling
large mailbox request/response data.

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>
crdma_hw.c
1228056bcff2e4029c3d9d5d31cf122eea3a4c6a 04-Feb-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Handle CQ overrun error

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>
crdma_hw.c
ac578aef8b9f6095016a12390f0ff638a3a54988 04-Feb-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Display proper value for max_mw

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>
crdma.h
crdma_hw.c
crdma_verbs.c
cf5788ade718a2cc654170ff11c7d6f6f1ecbdcc 04-Feb-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Use non-zero tag in SRQ posting

As part of SRQ receive buffers posting we populate a non-zero tag
which will be returned in SRQ receive completions.

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>
crdma_verbs.c
9d1878a369b23f48a5ca5bcbd89abb0e569c58cc 04-Feb-2014 Selvin Xavier <selvin.xavier@emulex.com> RDMA/ocrdma: Memory leak fix in ocrdma_dereg_mr()

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>
crdma_verbs.c
2e6e9f2bb894e902b7fbd3f6865719eaa8306b6c 04-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Increment abi version count

Increment the ABI version count for driver/library interface.

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>
crdma_abi.h
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>
crdma.h
crdma_main.c
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>
crdma_abi.h
crdma_main.c
1eebbb6ec3eb760f77240af7e850e93222e89afe 04-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Allow DPP QP creation

Allow creating DPP QP even if inline-data is not requested. This is an
optimization to lower latency.

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>
crdma_hw.c
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>
crdma.h
crdma_hw.c
crdma_main.c
crdma_sli.h
crdma_verbs.c
2df84fa87f4d00299031b1335748c54176edfe87 04-Feb-2014 Devesh Sharma <Devesh.Sharma@Emulex.Com> RDMA/ocrdma: SQ and RQ doorbell offset clean up

Introducing new macros to define SQ and RQ doorbell offset.

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>
crdma.h
crdma_sli.h
crdma_verbs.c
ea61762679cd4d409dcaa6f502f190f4c8156d09 04-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: EQ full catastrophe avoidance

Stale entries in the CQ being destroyed causes hardware to generate
EQEs indefinitely for a given CQ. Thus causing uncontrolled execution
of irq_handler. This patch fixes this using following sementics:

* irq_handler will ring EQ doorbell atleast once and implement budgeting scheme.
* cq_destroy will count number of valid entires during destroy and ring
cq-db so that hardware does not generate uncontrolled EQE.
* cq_destroy will synchronize with last running irq_handler instance.
* arm_cq will always defer arming CQ till poll_cq, except for the first arm_cq call.
* poll_cq will always ring cq-db with arm=SET if arm_cq was called prior to enter poll_cq.
* poll_cq will always ring cq-db with arm=UNSET if arm_cq was not called prior to enter poll_cq.

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>
crdma.h
crdma_hw.c
crdma_hw.h
crdma_verbs.c
bc1b04ab34a1485339571242cb0fbad823835685 19-Feb-2014 Prarit Bhargava <prarit@redhat.com> RDMA/ocrdma: Fix compiler warning

drivers/infiniband/hw/ocrdma/ocrdma_verbs.c: In function ‘_ocrdma_modify_qp’:
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:1299:31: error: ‘old_qps’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
status = ocrdma_mbx_modify_qp(dev, qp, attr, attr_mask, old_qps);

ocrdma_mbx_modify_qp() (and subsequent calls) doesn't appear to use old_qps
so it doesn't need to be passed on. Removing the variable results in the
warning going away.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Acked-by: Devesh Sharma (Devesh.sharma@emulex.com)
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_hw.h
crdma_verbs.c
eeb8461e36c99fdf2d058751be924a2aab215005 28-Jan-2014 Yishai Hadas <yishaih@mellanox.com> IB: Refactor umem to use linear SG table

This patch refactors the IB core umem code and vendor drivers to use a
linear (chained) SG table instead of chunk list. With this change the
relevant code becomes clearer—no need for nested loops to build and
use umem.

Signed-off-by: Shachar Raindel <raindel@mellanox.com>
Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
c9459388d8b7da050de173eb85359b17ee575bd3 14-Feb-2014 Roland Dreier <roland@purestorage.com> Merge branches 'cma', 'cxgb4', 'iser', 'misc', 'mlx4', 'mlx5', 'nes', 'ocrdma', 'qib' and 'usnic' into for-next
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>
crdma_main.c
a61d93d92f5c9533898098abb5f187840900aeb5 10-Feb-2014 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Fix traffic class shift

Use correct value for obtaining traffic class from device
response for Query QP request.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
b4a26a27287a7f81933ba016aeed6c69dd155323 09-Feb-2014 Moni Shoua <monis@mellanox.co.il> IB: Report using RoCE IP based gids in port caps

For userspace RoCE UD QPs we need to know the GID format that the
kernel uses, e.g when working over older kernels. For that end, add a
new port capability IB_PORT_IP_BASED_GIDS and report it when query
port is issued.

Signed-off-by: Moni Shoua <monis@mellanox.co.il>
Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
fb1b5034e4987b158179a62732fb6dfb8f7ec88e 23-Jan-2014 Roland Dreier <roland@purestorage.com> Merge branch 'ip-roce' into for-next

Conflicts:
drivers/infiniband/hw/mlx4/main.c
9392fa06411cf93885c4cafc8058085d98f52fec 20-Jan-2014 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Add dependency on INET

Now that ocrdma supports IP-based addressing, we need to depend on
INET, since ocrdma registers itself for net device events.

Signed-off-by: Roland Dreier <roland@purestorage.com>
config
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>
crdma_main.c
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>
crdma_main.c
crdma_verbs.c
40aca6ffcac57dd9c65877a59a8bbb210c4691ca 12-Dec-2013 Moni Shoua <monis@mellanox.com> RDMA/ocrdma: Handle Ethernet L2 parameters for IP based GID addressing

This patch is similar in spirit to the "IB/mlx4: Handle Ethernet L2
parameters for IP based GID addressing". It handles the fact that IP
based RoCE gids don't store Ethernet L2 parameters, MAC and VLAN.

When building an address handle, instead of parsing the dgid to
get the MAC and VLAN, take them from the address handle attributes.

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>
crdma.h
crdma_ah.c
crdma_hw.c
crdma_hw.h
dd5f03beb4f76ae65d76d8c22a8815e424fc607c 12-Dec-2013 Matan Barak <matanb@mellanox.com> IB/core: Ethernet L2 attributes in verbs/cm structures

This patch add the support for Ethernet L2 attributes in the
verbs/cm/cma structures.

When dealing with L2 Ethernet, we should use smac, dmac, vlan ID and priority
in a similar manner that the IB L2 (and the L4 PKEY) attributes are used.

Thus, those attributes were added to the following structures:

* ib_ah_attr - added dmac
* ib_qp_attr - added smac and vlan_id, (sl remains vlan priority)
* ib_wc - added smac, vlan_id
* ib_sa_path_rec - added smac, dmac, vlan_id
* cm_av - added smac and vlan_id

For the path record structure, extra care was taken to avoid the new
fields when packing it into wire format, so we don't break the IB CM
and SA wire protocol.

On the active side, the CM fills. its internal structures from the
path provided by the ULP. We add there taking the ETH L2 attributes
and placing them into the CM Address Handle (struct cm_av).

On the passive side, the CM fills its internal structures from the WC
associated with the REQ message. We add there taking the ETH L2
attributes from the WC.

When the HW driver provides the required ETH L2 attributes in the WC,
they set the IB_WC_WITH_SMAC and IB_WC_WITH_VLAN flags. The IB core
code checks for the presence of these flags, and in their absence does
address resolution from the ib_init_ah_from_wc() helper function.

ib_modify_qp_is_ok is also updated to consider the link layer. Some
parameters are mandatory for Ethernet link layer, while they are
irrelevant for IB. Vendor drivers are modified to support the new
function signature.

Signed-off-by: Matan Barak <matanb@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
be8348df6efac6b602f2ad3210139bccf0dbe3d7 05-Dec-2013 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Fix OCRDMA_GEN2_FAMILY macro definition

OCRDMA_GEN2_FAMILY is wrongly defined as 0x02 -- it should be 0x0F.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_sli.h
fe5e8a1acc7fd877b6706053cf88c418c33fe7a3 05-Dec-2013 Devesh Sharma <devesh.sharma@emulex.com> RDMA/ocrdma: Fix AV_VALID bit position

Fix ah->av->valid bit position and big endian portability.

Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_ah.c
crdma_sli.h
d5e3f378337581af86a8b86a4db8fd6e164eae3c 28-Oct-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Remove redundant check in ocrdma_build_fr()

Remove the redundant check of comparing if a 32-bit value is greater
than 0xffffffffULL.

Reported by Dan Carpenter.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
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>
crdma.h
crdma_main.c
crdma_verbs.c
6ebacdfc07ca61ba258693c9b4c88f1ffbe8ccd7 06-Sep-2013 Dan Carpenter <dan.carpenter@oracle.com> RDMA/ocrdma: Silence an integer underflow warning

We recently added a cap on "max_wqe_allocated" in 43a6b4025c
('RDMA/ocrdma: Create IRD queue fix').

My static checker complains that the cap has a problem because it
casts large values to negative. "attrs->cap.max_send_wr" is a u32.
It comes from the user, but it's capped in ocrdma_check_qp_params() so
it can't wrap here.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
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>
crdma_hw.c
crdma_main.c
crdma_verbs.c
33ccbd858f3a8676d976f1a990c7c62e51551241 03-Sep-2013 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Fix compiler warning about int/pointer size mismatch

Fix:

drivers/infiniband/hw/ocrdma/ocrdma_verbs.c: In function 'ocrdma_build_fr':
>> drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:1832:7: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
mr = (struct ocrdma_mr *)qp->dev->stag_arr[(hdr->lkey >> 8) &
^
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c: In function 'ocrdma_alloc_frmr':
>> drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:2661:64: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
dev->stag_arr[(mr->hwmr.lkey >> 8) & (OCRDMA_MAX_STAG - 1)] = (u64) mr;

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
d7e19c0ad9baa0cfe7ef8b69a182a7db1dee6b52 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Fix passing wrong opcode to modify_srq

Fix passing wrong opcode to ocrdma_modify_srq and query SRQ.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
84b105db593e735b8304815c913f7eea222a0600 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Fill PVID in UMC case

In UMC case, driver needs to fill PVID in the address vector
template for UD traffic.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_ah.c
crdma_hw.c
crdma_sli.h
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>
crdma_abi.h
crdma_main.c
117e6dd1c5c96ef1edd6e5def4dd9937d98cae94 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Consider multiple SGES in case of DPP

While posting inline DPP data, we are not considering multiple sges.
Fix this.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
f24ceba6b6454f68f456981be2a337b6390d9aa0 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Fix for displaying proper link speed

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_hw.h
crdma_sli.h
crdma_verbs.c
c43e9ab84d853f499a2fd531362973c8e505b342 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Increase STAG array size

1) Increase STAG Array size.
2) Max inline data size should be set to the same value
used during QP creation
3) Set max_sge_rd to zero since we dont support RD transport in our adapters.
4) Max cqes reported in ibv_devinfo should be from QUERY_CONFIG.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_sli.h
crdma_verbs.c
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>
crdma.h
crdma_hw.c
crdma_hw.h
crdma_main.c
crdma_sli.h
crdma_verbs.c
2b51a9b9eb6bf240d2592e10d2f8823dd1f5ee3e 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: FRMA code cleanup

1) Fixed setting FR_MR bit for FRWR stag allocation
2) Access rights are passsed during FRWR stage and not during STAT allocation stage
3) FRWR WQE structure cleanup
4) Add QP level signaled bit.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_hw.c
crdma_sli.h
crdma_verbs.c
f11220ee69f72cf08479f28fd494264ac6a9349b 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: For ERX2 irrespective of Qid, num_posted offset is 24

1) All RQ doorbells are handled by ERX2 and doorbell->num_posted
offset is constant to bit offset 24 for ERX2 irrspective of Q id.

2) Fixed RESET to INIT state change (from ERR->RST->INIT->RTR case).

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_sli.h
crdma_verbs.c
crdma_verbs.h
c88bd03ffccdb069fd9541bea347bdab8f4e7e6a 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Fix to work with even a single MSI-X vector

There are cases like SRIOV where can get only one MSI-X vector
allocated for RoCE. In that case we need to use the vector for both
data plane and control plane. We need to use EQ create version V2.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_hw.c
d3cb6c0b2a0d9f507fff8d7c74b2b334d6751bee 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Remove the MTU check based on Ethernet MTU

Also increase MAX AH to 512.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_verbs.c
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>
crdma.h
crdma_hw.c
crdma_main.c
crdma_sli.h
crdma_verbs.c
crdma_verbs.h
43a6b4025c79ded5b44e58ba0db97c29dd38d718 26-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Create IRD queue fix

1) Fix ocrdma_get_num_posted_shift for upto 128 QPs.
2) Create for min of dev->max_wqe and requested wqe in create_qp.
3) As part of creating ird queue, populate with basic header templates.
4) Make sure all the DB memory allocated to userspace are page aligned.
5) Fix issue in checking the mmap local cache.
6) Some code cleanup.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_hw.c
crdma_verbs.c
45e86b33ec8b33f9ed41d9f9005f9e663018f8f1 06-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Cache recv DB until QP moved to RTR

1) In post recv, don't ring the DB doorbell if the QP is in RTR state.
Cache the DB calls, until the QP is moved to RTS state.
2) Add max_rd_sge support to dev->attr.
3) Code cleanup in alloc_pd path.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_hw.c
crdma_sli.h
crdma_verbs.c
7b9b1a596e0f37b463dfe3bc36b6d035c7450ca0 06-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Remove __packed

1) Remove __packed for structures.
2) Align and pad all ABI structure to 64 bit boundaries
instead of using __packed.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_abi.h
crdma_sli.h
057729cb234754d12e0b2a361c2fc85c6363cbf6 06-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Remove driver QP state machine

Remove QP state machine in ocrdma low-level driver and use on the core
IB stack's instead.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_hw.h
crdma_verbs.c
9c58726ba96ad5f767ce2d8c42159c3075a98d6f 06-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Don't allow zero/invalid sgid usage

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
1afc0454b6658ad2d0a87e594e1f06dc19c6977d 06-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Remove redundant dev reference

Remove redundant dev reference from structures:

1) ocrdma_cq.
2) ocrdma_ah.
3) ocrdma_hw_mr.
4) ocrdma_mw.
5) ocrdma_srq.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_ah.c
crdma_hw.c
crdma_hw.h
crdma_verbs.c
f99b1649dbb6342d618307faef1f214fd54928b9 06-Aug-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Style and redundant code cleanup

Code cleanup and remove redundant code:

1) redundant initialization removed
2) braces changed as per CodingStyle.
3) redundant checks removed
4) extra braces in return statements removed.
5) removed unused pd pointer from mr.
6) reorganized get_dma_mr()
7) fixed set_av() to return error on invalid sgid index.
8) reference to ocrdma_dev removed from struct ocrdma_pd.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_ah.c
crdma_hw.c
crdma_verbs.c
63ea37495714849a5a7986244d9d656e0af14961 29-Jul-2013 Dan Carpenter <dan.carpenter@oracle.com> RDMA/ocrdma: Fix several stack info leaks

A grab bag of places which don't properly initialize stack data. I
removed one place which cleared ".rsvd" because it's not needed now
that I have added a memset() earlier in the function.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
3606b99971b66b57a68c952619b43c12f90d2c70 26-Jul-2013 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Remove unused include

I'd like to remove rdma/ib_cache.h some day, so let's avoid
proliferating uses of it unnecessarily.

Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_ah.c
c94e15c5cb4d02579321382871eb87e17d10858e 23-Jun-2013 Wei Yongjun <yongjun_wei@trendmicro.com.cn> RDMA/ocrdma: Fix error return code in ocrdma_set_create_qp_rq_cmd()

Fix to return -ENOMEM in the alloc dma coherent error case instead of
0, as done elsewhere in this function.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
9884bcdca30ae9f29a0d6af4a4577826b00c5d94 10-Jun-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Reorg structures to avoid padding

Reorg structures to better packing to avoid cacheline padding.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
df176ea0743fd0fb0514c862797f6bd8c08ab42e 10-Jun-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Change macros to inline funtions

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_sli.h
crdma_verbs.c
f6ddcf71070d01a7bb34818dd3aaf4bdac5386fa 10-Jun-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Set bad_wr in error case

Fix post_send to set the bad_wr in error case.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
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>
crdma.h
crdma_hw.c
crdma_main.c
crdma_verbs.c
b1d58b99194a121a44ec77571f84f62a6ccd6431 10-Jun-2013 Naresh Gottumukkala <bgottumukkala@emulex.com> RDMA/ocrdma: Use MCC_CREATE_EXT_V1 for MCC create

Use MCC_CREATE_EXT_V1 to create MCC_queue to receive RoCE events.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_sli.h
27159f5087f9ff59fdc42958a31bca3a291b9f67 05-Jun-2013 Gottumukkala, Naresh <B.A.L.NRaju.Gottumukkala@Emulex.Com> RDMA/ocrdma: Remove use_cnt for queues

Remove use_cnt. Rely on IB midlayer to keep track of the use count.

Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_hw.c
crdma_verbs.c
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>
crdma_main.c
ae3bca90e94dbc9c906321b33f32de4a42a6cdf4 17-Aug-2012 Parav Pandit <parav.pandit@emulex.com> RDMA/ocrdma: Fix CQE expansion of unsignaled WQE

Fix CQE expansion of unsignaled WQE -- don't expand the CQE when the
WQE index of the completed CQE matches with last pending WQE (tail) in
the queue.

Signed-off-by: Parav Pandit <parav.pandit@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
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>
crdma_main.c
9e8fa040cb2d9070d15d3f0d71b83e85e32ecde2 27-Jul-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Fix check of GSI CQs

It looks like one check was accidentally duplicated, and the other 3
checks were left out. This was detected by scripts/coccinelle/tests/doubletest.cocci:

drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:895:6-54: duplicated argument to && or ||

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
089117e1ad265625b523a4168f77f2521b18fd32 23-Jul-2012 Roland Dreier <roland@purestorage.com> Merge branches 'cma', 'cxgb4', 'misc', 'mlx4-sriov', 'mlx-cleanups', 'ocrdma' and 'qib' into for-linus
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>
crdma_main.c
d1e09ebf426ff34b4b6bbd6212b820edeb992bd4 08-Jul-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Fix assignment of max_srq_sge in device query

We want to set attr->max_srq_sge to dev->attr.max_srq_sge, not to itself.

This was detected by Coverity (CID 709210).

Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
7b33dc2b050b71de0e202885a26caffbc864d072 14-Jun-2012 Dan Carpenter <dan.carpenter@oracle.com> RDMA/ocrdma: Fix off by one in ocrdma_query_gid()

The dev->sgid_tbl[] array is allocated in ocrdma_alloc_resources().
It has OCRDMA_MAX_SGID elements so the test here is off by one.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
a3698a9b919d2a54e3348be48ab65d102b2f105d 11-Jun-2012 Parav Pandit <parav.pandit@emulex.com> RDMA/ocrdma: Fixed RQ error CQE polling

Fix RQ/SRQ error CQE polling. Return error CQE to consumer for error
case which was not returned previously.

Signed-off-by: Parav Pandit <parav.pandit@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
634c5796a5c60964faf9d51892571ffe36ad24d5 08-Jun-2012 Mahesh Vardhamanaiah <mahesh.vardhamanaiah@emulex.com> RDMA/ocrdma: Correct queue SGE calculation

Fix max sge calculation for sq, rq, srq for all hardware types.

Signed-off-by: Mahesh Vardhamanaiah <mahesh.vardhamanaiah@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_hw.c
crdma_sli.h
crdma_verbs.c
07bb54244e466f1517357f47a498574f97c31e08 08-Jun-2012 Mahesh Vardhamanaiah <mahesh.vardhamanaiah@emulex.com> RDMA/ocrdma: Correct reported max queue sizes

Fix code to read the max wqe and max rqe values from mailbox response.

Signed-off-by: Mahesh Vardhamanaiah <mahesh.vardhamanaiah@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_sli.h
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>
crdma_main.c
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>
crdma_main.c
crdma_verbs.h
804eaf29bac4148aa265bedc62182ed41a4c6120 23-May-2012 Parav Pandit <parav.pandit@emulex.com> RDMA/ocrdma: Fix signaled event for SRQ_LIMIT_REACHED

Signed-off-by: Parav Pandit <parav.pandit@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
cd4fedf9cfe2d453148dce0f105a41725e5107a3 23-May-2012 Parav Pandit <parav.pandit@emulex.com> RDMA/ocrdma: Correct queue free count math

Correct queue free count math for SQ, RQ for all hardware type.
Update user-kernel ABI interface.

Signed-off-by: Parav Pandit <parav.pandit@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma.h
crdma_abi.h
crdma_hw.c
crdma_verbs.c
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>
config
crdma_main.c
d19081e044356ae6464e939aef04514c5e227b5a 02-May-2012 Dan Carpenter <dan.carpenter@oracle.com> RDMA/ocrdma: Tiny locking cleanup

We only need to disable the IRQs one time.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

[ Rename "wq_flags" to more conventional "flags." - Roland ]

Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
55a8d62a3bd2a0536d526da817fd4f49e6470770 02-May-2012 Dan Carpenter <dan.carpenter@oracle.com> RDMA/ocrdma: Fix check for NULL instead of IS_ERR

The ocrdma_alloc_lkey() function never returns NULL pointers -- it
returns ERR_PTRs.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_verbs.c
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>
crdma.h
crdma_main.c
c592c42331f685b73f19ee54cfebfac0084f6e93 17-Apr-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Remove write-only variables

Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_verbs.c
e9db29534d2bc7c5e24f0fdd4beff9001517d785 16-Apr-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Set event's device member in ocrdma_dispatch_ibevent()

We need to set ib_evt.device, or else ib_dispatch_event() will crash
when we call it for unaffiliated events (and consumers may get
confused in their QP/CQ/SRQ event handler for affiliated events).

Also fix sparse warning:

drivers/infiniband/hw/ocrdma/ocrdma_hw.c:678:36: warning: Using plain integer as NULL pointer

There's no need to clear ib_evt, since every member is initialized.

Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
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>
crdma_hw.c
crdma_main.c
da4964387d997244b043dd812540bed851c45c9e 16-Apr-2012 Roland Dreier <roland@purestorage.com> RDMA/ocrdma: Fix warnings about uninitialized variables

First, fix

drivers/infiniband/hw/ocrdma/ocrdma_verbs.c: In function 'ocrdma_alloc_pd':
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:371:17: warning: 'dpp_page_addr' may be used uninitialized in this function [-Wuninitialized]
drivers/infiniband/hw/ocrdma/ocrdma_verbs.c:337:6: note: 'dpp_page_addr' was declared here

which seems that it may border on a bug (the call to ocrdma_del_mmap()
might conceivably do bad things if pd->dpp_enabled is not set and
dpp_page_addr ends up with just the wrong value).

Also take care of:

drivers/infiniband/hw/ocrdma/ocrdma_hw.c: In function 'ocrdma_init_hw':
drivers/infiniband/hw/ocrdma/ocrdma_hw.c:2587:5: warning: 'status' may be used uninitialized in this function [-Wuninitialized]
drivers/infiniband/hw/ocrdma/ocrdma_hw.c:2549:17: note: 'status' was declared here

which is only real if num_eq == 0, which should be impossible.

Signed-off-by: Roland Dreier <roland@purestorage.com>
crdma_hw.c
crdma_verbs.c
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>
config
akefile
crdma.h
crdma_abi.h
crdma_ah.c
crdma_ah.h
crdma_hw.c
crdma_hw.h
crdma_main.c
crdma_sli.h
crdma_verbs.c
crdma_verbs.h