Commit 6bd113f1 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'ib-srpt-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

Cleanups and error path fixes for the new SRP (SCSI RDMA protocol) target.

* tag 'ib-srpt-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
  IB/srpt: Don't return freed pointer from srpt_alloc_ioctx_ring()
  IB/srpt: Fix ERR_PTR() vs. NULL checking confusion
  IB/srpt: Remove unneeded <linux/version.h> include
  IB/srpt: Use ARRAY_SIZE() instead of open-coding
  IB/srpt: Use DEFINE_SPINLOCK()/LIST_HEAD()
parents 95025d6b 715252d4
...@@ -69,8 +69,8 @@ MODULE_LICENSE("Dual BSD/GPL"); ...@@ -69,8 +69,8 @@ MODULE_LICENSE("Dual BSD/GPL");
*/ */
static u64 srpt_service_guid; static u64 srpt_service_guid;
static spinlock_t srpt_dev_lock; /* Protects srpt_dev_list. */ static DEFINE_SPINLOCK(srpt_dev_lock); /* Protects srpt_dev_list. */
static struct list_head srpt_dev_list; /* List of srpt_device structures. */ static LIST_HEAD(srpt_dev_list); /* List of srpt_device structures. */
static unsigned srp_max_req_size = DEFAULT_MAX_REQ_SIZE; static unsigned srp_max_req_size = DEFAULT_MAX_REQ_SIZE;
module_param(srp_max_req_size, int, 0444); module_param(srp_max_req_size, int, 0444);
...@@ -687,6 +687,7 @@ static struct srpt_ioctx **srpt_alloc_ioctx_ring(struct srpt_device *sdev, ...@@ -687,6 +687,7 @@ static struct srpt_ioctx **srpt_alloc_ioctx_ring(struct srpt_device *sdev,
while (--i >= 0) while (--i >= 0)
srpt_free_ioctx(sdev, ring[i], dma_size, dir); srpt_free_ioctx(sdev, ring[i], dma_size, dir);
kfree(ring); kfree(ring);
ring = NULL;
out: out:
return ring; return ring;
} }
...@@ -2595,7 +2596,7 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id, ...@@ -2595,7 +2596,7 @@ static int srpt_cm_req_recv(struct ib_cm_id *cm_id,
} }
ch->sess = transport_init_session(); ch->sess = transport_init_session();
if (!ch->sess) { if (IS_ERR(ch->sess)) {
rej->reason = __constant_cpu_to_be32( rej->reason = __constant_cpu_to_be32(
SRP_LOGIN_REJ_INSUFFICIENT_RESOURCES); SRP_LOGIN_REJ_INSUFFICIENT_RESOURCES);
pr_debug("Failed to create session\n"); pr_debug("Failed to create session\n");
...@@ -3264,8 +3265,7 @@ static void srpt_add_one(struct ib_device *device) ...@@ -3264,8 +3265,7 @@ static void srpt_add_one(struct ib_device *device)
for (i = 0; i < sdev->srq_size; ++i) for (i = 0; i < sdev->srq_size; ++i)
srpt_post_recv(sdev, sdev->ioctx_ring[i]); srpt_post_recv(sdev, sdev->ioctx_ring[i]);
WARN_ON(sdev->device->phys_port_cnt WARN_ON(sdev->device->phys_port_cnt > ARRAY_SIZE(sdev->port));
> sizeof(sdev->port)/sizeof(sdev->port[0]));
for (i = 1; i <= sdev->device->phys_port_cnt; i++) { for (i = 1; i <= sdev->device->phys_port_cnt; i++) {
sport = &sdev->port[i - 1]; sport = &sdev->port[i - 1];
...@@ -4010,13 +4010,10 @@ static int __init srpt_init_module(void) ...@@ -4010,13 +4010,10 @@ static int __init srpt_init_module(void)
goto out; goto out;
} }
spin_lock_init(&srpt_dev_lock);
INIT_LIST_HEAD(&srpt_dev_list);
ret = -ENODEV;
srpt_target = target_fabric_configfs_init(THIS_MODULE, "srpt"); srpt_target = target_fabric_configfs_init(THIS_MODULE, "srpt");
if (!srpt_target) { if (IS_ERR(srpt_target)) {
printk(KERN_ERR "couldn't register\n"); printk(KERN_ERR "couldn't register\n");
ret = PTR_ERR(srpt_target);
goto out; goto out;
} }
......
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
#ifndef IB_SRPT_H #ifndef IB_SRPT_H
#define IB_SRPT_H #define IB_SRPT_H
#include <linux/version.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/list.h> #include <linux/list.h>
#include <linux/wait.h> #include <linux/wait.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment