Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (170 commits) [SCSI] scsi_dh_rdac: Add MD36xxf into device list [SCSI] scsi_debug: add consecutive medium errors [SCSI] libsas: fix ata list corruption issue [SCSI] hpsa: export resettable host attribute [SCSI] hpsa: move device attributes to avoid forward declarations [SCSI] scsi_debug: Logical Block Provisioning (SBC3r26) [SCSI] sd: Logical Block Provisioning update [SCSI] Include protection operation in SCSI command trace [SCSI] hpsa: fix incorrect PCI IDs and add two new ones (2nd try) [SCSI] target: Fix volume size misreporting for volumes > 2TB [SCSI] bnx2fc: Broadcom FCoE offload driver [SCSI] fcoe: fix broken fcoe interface reset [SCSI] fcoe: precedence bug in fcoe_filter_frames() [SCSI] libfcoe: Remove stale fcoe-netdev entries [SCSI] libfcoe: Move FCOE_MTU definition from fcoe.h to libfcoe.h [SCSI] libfc: introduce __fc_fill_fc_hdr that accepts fc_hdr as an argument [SCSI] fcoe, libfc: initialize EM anchors list and then update npiv EMs [SCSI] Revert "[SCSI] libfc: fix exchange being deleted when the abort itself is timed out" [SCSI] libfc: Fixing a memory leak when destroying an interface [SCSI] megaraid_sas: Version and Changelog update ... Fix up trivial conflicts due to whitespace differences in drivers/scsi/libsas/{sas_ata.c,sas_scsi_host.c}
This commit is contained in:
@@ -530,6 +530,7 @@ static struct cxgbi_sock *cxgbi_check_route(struct sockaddr *dst_addr)
|
||||
csk->dst = dst;
|
||||
csk->daddr.sin_addr.s_addr = daddr->sin_addr.s_addr;
|
||||
csk->daddr.sin_port = daddr->sin_port;
|
||||
csk->daddr.sin_family = daddr->sin_family;
|
||||
csk->saddr.sin_addr.s_addr = rt->rt_src;
|
||||
|
||||
return csk;
|
||||
@@ -1264,12 +1265,6 @@ static int ddp_tag_reserve(struct cxgbi_sock *csk, unsigned int tid,
|
||||
return idx;
|
||||
}
|
||||
|
||||
if (cdev->csk_ddp_alloc_gl_skb) {
|
||||
err = cdev->csk_ddp_alloc_gl_skb(ddp, idx, npods, gfp);
|
||||
if (err < 0)
|
||||
goto unmark_entries;
|
||||
}
|
||||
|
||||
tag = cxgbi_ddp_tag_base(tformat, sw_tag);
|
||||
tag |= idx << PPOD_IDX_SHIFT;
|
||||
|
||||
@@ -1280,11 +1275,8 @@ static int ddp_tag_reserve(struct cxgbi_sock *csk, unsigned int tid,
|
||||
hdr.page_offset = htonl(gl->offset);
|
||||
|
||||
err = cdev->csk_ddp_set(csk, &hdr, idx, npods, gl);
|
||||
if (err < 0) {
|
||||
if (cdev->csk_ddp_free_gl_skb)
|
||||
cdev->csk_ddp_free_gl_skb(ddp, idx, npods);
|
||||
if (err < 0)
|
||||
goto unmark_entries;
|
||||
}
|
||||
|
||||
ddp->idx_last = idx;
|
||||
log_debug(1 << CXGBI_DBG_DDP,
|
||||
@@ -1350,8 +1342,6 @@ static void ddp_destroy(struct kref *kref)
|
||||
>> PPOD_PAGES_SHIFT;
|
||||
pr_info("cdev 0x%p, ddp %d + %d.\n", cdev, i, npods);
|
||||
kfree(gl);
|
||||
if (cdev->csk_ddp_free_gl_skb)
|
||||
cdev->csk_ddp_free_gl_skb(ddp, i, npods);
|
||||
i += npods;
|
||||
} else
|
||||
i++;
|
||||
@@ -1394,8 +1384,6 @@ int cxgbi_ddp_init(struct cxgbi_device *cdev,
|
||||
return -ENOMEM;
|
||||
}
|
||||
ddp->gl_map = (struct cxgbi_gather_list **)(ddp + 1);
|
||||
ddp->gl_skb = (struct sk_buff **)(((char *)ddp->gl_map) +
|
||||
ppmax * sizeof(struct cxgbi_gather_list *));
|
||||
cdev->ddp = ddp;
|
||||
|
||||
spin_lock_init(&ddp->map_lock);
|
||||
@@ -1895,13 +1883,16 @@ EXPORT_SYMBOL_GPL(cxgbi_conn_alloc_pdu);
|
||||
|
||||
static inline void tx_skb_setmode(struct sk_buff *skb, int hcrc, int dcrc)
|
||||
{
|
||||
u8 submode = 0;
|
||||
if (hcrc || dcrc) {
|
||||
u8 submode = 0;
|
||||
|
||||
if (hcrc)
|
||||
submode |= 1;
|
||||
if (dcrc)
|
||||
submode |= 2;
|
||||
cxgbi_skcb_ulp_mode(skb) = (ULP2_MODE_ISCSI << 4) | submode;
|
||||
if (hcrc)
|
||||
submode |= 1;
|
||||
if (dcrc)
|
||||
submode |= 2;
|
||||
cxgbi_skcb_ulp_mode(skb) = (ULP2_MODE_ISCSI << 4) | submode;
|
||||
} else
|
||||
cxgbi_skcb_ulp_mode(skb) = 0;
|
||||
}
|
||||
|
||||
int cxgbi_conn_init_pdu(struct iscsi_task *task, unsigned int offset,
|
||||
@@ -2197,32 +2188,34 @@ int cxgbi_set_conn_param(struct iscsi_cls_conn *cls_conn,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cxgbi_set_conn_param);
|
||||
|
||||
int cxgbi_get_conn_param(struct iscsi_cls_conn *cls_conn,
|
||||
enum iscsi_param param, char *buf)
|
||||
int cxgbi_get_ep_param(struct iscsi_endpoint *ep, enum iscsi_param param,
|
||||
char *buf)
|
||||
{
|
||||
struct iscsi_conn *iconn = cls_conn->dd_data;
|
||||
struct cxgbi_endpoint *cep = ep->dd_data;
|
||||
struct cxgbi_sock *csk;
|
||||
int len;
|
||||
|
||||
log_debug(1 << CXGBI_DBG_ISCSI,
|
||||
"cls_conn 0x%p, param %d.\n", cls_conn, param);
|
||||
"cls_conn 0x%p, param %d.\n", ep, param);
|
||||
|
||||
switch (param) {
|
||||
case ISCSI_PARAM_CONN_PORT:
|
||||
spin_lock_bh(&iconn->session->lock);
|
||||
len = sprintf(buf, "%hu\n", iconn->portal_port);
|
||||
spin_unlock_bh(&iconn->session->lock);
|
||||
break;
|
||||
case ISCSI_PARAM_CONN_ADDRESS:
|
||||
spin_lock_bh(&iconn->session->lock);
|
||||
len = sprintf(buf, "%s\n", iconn->portal_address);
|
||||
spin_unlock_bh(&iconn->session->lock);
|
||||
break;
|
||||
if (!cep)
|
||||
return -ENOTCONN;
|
||||
|
||||
csk = cep->csk;
|
||||
if (!csk)
|
||||
return -ENOTCONN;
|
||||
|
||||
return iscsi_conn_get_addr_param((struct sockaddr_storage *)
|
||||
&csk->daddr, param, buf);
|
||||
default:
|
||||
return iscsi_conn_get_param(cls_conn, param, buf);
|
||||
return -ENOSYS;
|
||||
}
|
||||
return len;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(cxgbi_get_conn_param);
|
||||
EXPORT_SYMBOL_GPL(cxgbi_get_ep_param);
|
||||
|
||||
struct iscsi_cls_conn *
|
||||
cxgbi_create_conn(struct iscsi_cls_session *cls_session, u32 cid)
|
||||
@@ -2289,11 +2282,6 @@ int cxgbi_bind_conn(struct iscsi_cls_session *cls_session,
|
||||
cxgbi_conn_max_xmit_dlength(conn);
|
||||
cxgbi_conn_max_recv_dlength(conn);
|
||||
|
||||
spin_lock_bh(&conn->session->lock);
|
||||
sprintf(conn->portal_address, "%pI4", &csk->daddr.sin_addr.s_addr);
|
||||
conn->portal_port = ntohs(csk->daddr.sin_port);
|
||||
spin_unlock_bh(&conn->session->lock);
|
||||
|
||||
log_debug(1 << CXGBI_DBG_ISCSI,
|
||||
"cls 0x%p,0x%p, ep 0x%p, cconn 0x%p, csk 0x%p.\n",
|
||||
cls_session, cls_conn, ep, cconn, csk);
|
||||
|
Reference in New Issue
Block a user