IB/srp, FRWR: Avoid that reconnecting can trigger a kernel oops
IB/srp: Introduce a local variable
IB/srp: Introduce srp_alloc_fmr_pool()

Move the code for allocating an FMR pool into a new function. This patch
does not change any functionality.
IB/srp, FRWR: Add support for non-contiguous memory regions

Discontigous memory region support has been tested by comparing the
output of the following commands:
$ dev=/dev/sdb
$ ./discontiguous-io -o 2 -l 512 $dev | md5sum
$ ./discontiguous-io -o 2 -l 512 -s $dev | md5sum
and also by verifying the output of the following commands:
$ date >date
$ dd if=/dev/zero of=$dev bs=512 count=1
$ dd if=$dev bs=512 count=1 | md5sum
$ { cat date; dd if=/dev/zero bs=512 count=1; } | ./discontiguous-io -w -l 512 $dev
$ dd if=$dev bs=512 count=1 | md5sum
$ dd if=/dev/zero of=$dev bs=512 count=1
$ { cat date; dd if=/dev/zero bs=512 count=1; } | ./discontiguous-io -s -w -l 512 $dev
$ dd if=$dev bs=512 count=1 | md5sum
It has also been verified with ibdump that the above commands trigger
a sequence of 128 RDMA writes or reads respectively.

Other changes included in this patch:
- One FRWR pool per connection instead of per target to maximize scalability.
- Add the "register_always" kernel module parameter, useful for testing FRWR.
- Removed the "fast_reg" sysfs attribute.
- Removed the "use_fast_reg" login parameter.
v2.0.22
Makefile: Rework OFED support
IB/srp: Modify indentation
IB/srp: Rename FRWR into FR
IB/srp: Rename fast-registration related data structures and functions
IB/srp: kernel-doc updates
IB/srp: Fix a RHEL 6 compiler warning
IB/srp: Align with upstream v3.16 kernel
IB/srp: Use P_Key cache for P_Key lookups
IB/srp: Make CM timeout depend on subnet timeout
IB/srp: Store pkey also in srp_target_port
IB/srp: Move ib_destroy_cm_id() call into srp_free_ch_ib()
IB/srp: Separate target and channel variables

Changes:
* Moved channel variables into a new structure (struct srp_rdma_ch).
* Added srp_target_port.ch_list and srp_rdma_ch.lock, entry, target
  and comp_vector.
* cm_id and completion handler context pointer is now of type
  srp_rdma_ch * instead of srp_target_port *.
IB/srp: Add multichannel support

Improve performance by using multiple RDMA/RC channels per SCSI host
for communicating with an SRP target.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
IB/srp: Add use_blk_mq kernel module parameter
IB/srp: Remove stale connection retry mechanism