lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 23 Jul 2011 15:34:44 +0200 (CEST)
From:	Jesper Juhl <jj@...osbits.net>
To:	"Nicholas A. Bellinger" <nab@...ux-iscsi.org>
cc:	target-devel <target-devel@...r.kernel.org>,
	linux-scsi <linux-scsi@...r.kernel.org>,
	linux-kernel <linux-kernel@...r.kernel.org>,
	Christoph Hellwig <hch@....de>,
	Andy Grover <agrover@...hat.com>,
	Hannes Reinecke <hare@...e.de>,
	Roland Dreier <roland@...estorage.com>,
	James Bottomley <James.Bottomley@...senPartnership.com>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Re: [PATCH 01/13] iscsi: Resolve iscsi_proto.h naming conflicts with
 drivers/target/iscsi

On Sat, 23 Jul 2011, Nicholas A. Bellinger wrote:

> From: Nicholas Bellinger <nab@...ux-iscsi.org>
> 
> This patch renames the following iscsi_proto.h structures to avoid
> namespace issues with drivers/target/iscsi/iscsi_target_core.h:
> 
> *) struct iscsi_cmd -> struct iscsi_scsi_req
> *) struct iscsi_cmd_rsp -> struct iscsi_scsi_rsp
> *) struct iscsi_login -> struct iscsi_login_req
> 
> This patch includes useful ISCSI_FLAG_LOGIN_[CURRENT,NEXT]_STAGE*,
> and ISCSI_FLAG_SNACK_TYPE_* definitions used by iscsi_target_mod, and
> fixes the incorrect definition of struct iscsi_snack to following
> RFC-3720 Section 10.16. SNACK Request.
> 
> Also, this patch updates libiscsi, iSER, be2iscsi, and bn2xi to
> use the updated structure definitions in a handful of locations.
> 
> Signed-off-by: Mike Christie <michaelc@...wisc.edu>
> Signed-off-by: Nicholas A. Bellinger <nab@...ux-iscsi.org>
> ---
>  drivers/infiniband/ulp/iser/iser_initiator.c |    2 +-
>  drivers/scsi/be2iscsi/be_main.h              |    4 +-
>  drivers/scsi/bnx2i/bnx2i_hwi.c               |    8 +++---
>  drivers/scsi/libiscsi.c                      |    6 ++--
>  include/scsi/iscsi_proto.h                   |   30 +++++++++++++++++++-------
>  5 files changed, 32 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
> index 95a08a8..d73bab3 100644
> --- a/drivers/infiniband/ulp/iser/iser_initiator.c
> +++ b/drivers/infiniband/ulp/iser/iser_initiator.c
> @@ -271,7 +271,7 @@ int iser_send_command(struct iscsi_conn *conn,
>  	unsigned long edtl;
>  	int err;
>  	struct iser_data_buf *data_buf;
> -	struct iscsi_cmd *hdr =  (struct iscsi_cmd *)task->hdr;
> +	struct iscsi_scsi_req *hdr =  (struct iscsi_scsi_req *)task->hdr;
>  	struct scsi_cmnd *sc  =  task->sc;

How about getting rid of the extra spaces around the '=' while you are at 
it?

-     struct iscsi_cmd *hdr =  (struct iscsi_cmd *)task->hdr;
-     struct scsi_cmnd *sc  =  task->sc;
+     struct iscsi_scsi_req *hdr = (struct iscsi_scsi_req *)task->hdr;
+     struct scsi_cmnd *sc = task->sc;


>  	struct iser_tx_desc *tx_desc = &iser_task->desc;
>  
> diff --git a/drivers/scsi/be2iscsi/be_main.h b/drivers/scsi/be2iscsi/be_main.h
> index 081c171..5ce5170 100644
> --- a/drivers/scsi/be2iscsi/be_main.h
> +++ b/drivers/scsi/be2iscsi/be_main.h
> @@ -397,7 +397,7 @@ struct amap_pdu_data_out {
>  };
>  
>  struct be_cmd_bhs {
> -	struct iscsi_cmd iscsi_hdr;
> +	struct iscsi_scsi_req iscsi_hdr;
>  	unsigned char pad1[16];
>  	struct pdu_data_out iscsi_data_pdu;
>  	unsigned char pad2[BE_SENSE_INFO_SIZE -
> @@ -428,7 +428,7 @@ struct be_nonio_bhs {
>  };
>  
>  struct be_status_bhs {
> -	struct iscsi_cmd iscsi_hdr;
> +	struct iscsi_scsi_req iscsi_hdr;
>  	unsigned char pad1[16];
>  	/**
>  	 * The plus 2 below is to hold the sense info length that gets
> diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c
> index 372d30c..1b160e1 100644
> --- a/drivers/scsi/bnx2i/bnx2i_hwi.c
> +++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
> @@ -328,11 +328,11 @@ int bnx2i_send_iscsi_login(struct bnx2i_conn *bnx2i_conn,
>  {
>  	struct bnx2i_cmd *bnx2i_cmd;
>  	struct bnx2i_login_request *login_wqe;
> -	struct iscsi_login *login_hdr;
> +	struct iscsi_login_req *login_hdr;
>  	u32 dword;
>  
>  	bnx2i_cmd = (struct bnx2i_cmd *)task->dd_data;
> -	login_hdr = (struct iscsi_login *)task->hdr;
> +	login_hdr = (struct iscsi_login_req *)task->hdr;
>  	login_wqe = (struct bnx2i_login_request *)
>  						bnx2i_conn->ep->qp.sq_prod_qe;
>  
> @@ -1344,7 +1344,7 @@ static int bnx2i_process_scsi_cmd_resp(struct iscsi_session *session,
>  	struct bnx2i_cmd_response *resp_cqe;
>  	struct bnx2i_cmd *bnx2i_cmd;
>  	struct iscsi_task *task;
> -	struct iscsi_cmd_rsp *hdr;
> +	struct iscsi_scsi_rsp *hdr;
>  	u32 datalen = 0;
>  
>  	resp_cqe = (struct bnx2i_cmd_response *)cqe;
> @@ -1371,7 +1371,7 @@ static int bnx2i_process_scsi_cmd_resp(struct iscsi_session *session,
>  	}
>  	bnx2i_iscsi_unmap_sg_list(bnx2i_cmd);
>  
> -	hdr = (struct iscsi_cmd_rsp *)task->hdr;
> +	hdr = (struct iscsi_scsi_rsp *)task->hdr;
>  	resp_cqe = (struct bnx2i_cmd_response *)cqe;
>  	hdr->opcode = resp_cqe->op_code;
>  	hdr->max_cmdsn = cpu_to_be32(resp_cqe->max_cmd_sn);
> diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
> index 0c550d5..9c3cb4e 100644
> --- a/drivers/scsi/libiscsi.c
> +++ b/drivers/scsi/libiscsi.c
> @@ -360,7 +360,7 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task)
>  	struct iscsi_conn *conn = task->conn;
>  	struct iscsi_session *session = conn->session;
>  	struct scsi_cmnd *sc = task->sc;
> -	struct iscsi_cmd *hdr;
> +	struct iscsi_scsi_req *hdr;
>  	unsigned hdrlength, cmd_len;
>  	itt_t itt;
>  	int rc;
> @@ -374,7 +374,7 @@ static int iscsi_prep_scsi_cmd_pdu(struct iscsi_task *task)
>  		if (rc)
>  			return rc;
>  	}
> -	hdr = (struct iscsi_cmd *) task->hdr;
> +	hdr = (struct iscsi_scsi_req *) task->hdr;

Kill the space after the cast

+     hdr = (struct iscsi_scsi_req *)task->hdr;


>  	itt = hdr->itt;
>  	memset(hdr, 0, sizeof(*hdr));
>  
> @@ -830,7 +830,7 @@ static void iscsi_scsi_cmd_rsp(struct iscsi_conn *conn, struct iscsi_hdr *hdr,
>  			       struct iscsi_task *task, char *data,
>  			       int datalen)
>  {
> -	struct iscsi_cmd_rsp *rhdr = (struct iscsi_cmd_rsp *)hdr;
> +	struct iscsi_scsi_rsp *rhdr = (struct iscsi_scsi_rsp *)hdr;
>  	struct iscsi_session *session = conn->session;
>  	struct scsi_cmnd *sc = task->sc;
>  
> diff --git a/include/scsi/iscsi_proto.h b/include/scsi/iscsi_proto.h
> index dd0a52c..a9c9058 100644
> --- a/include/scsi/iscsi_proto.h
> +++ b/include/scsi/iscsi_proto.h
> @@ -116,7 +116,7 @@ struct iscsi_ahs_hdr {
>  #define ISCSI_CDB_SIZE			16
>  
>  /* iSCSI PDU Header */
> -struct iscsi_cmd {
> +struct iscsi_scsi_req {
>  	uint8_t opcode;
>  	uint8_t flags;
>  	__be16 rsvd2;
> @@ -161,7 +161,7 @@ struct iscsi_ecdb_ahdr {
>  };
>  
>  /* SCSI Response Header */
> -struct iscsi_cmd_rsp {
> +struct iscsi_scsi_rsp {
>  	uint8_t opcode;
>  	uint8_t flags;
>  	uint8_t response;
> @@ -406,7 +406,7 @@ struct iscsi_text_rsp {
>  };
>  
>  /* Login Header */
> -struct iscsi_login {
> +struct iscsi_login_req {
>  	uint8_t opcode;
>  	uint8_t flags;
>  	uint8_t max_version;	/* Max. version supported */
> @@ -427,7 +427,13 @@ struct iscsi_login {
>  #define ISCSI_FLAG_LOGIN_TRANSIT		0x80
>  #define ISCSI_FLAG_LOGIN_CONTINUE		0x40
>  #define ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK	0x0C	/* 2 bits */
> +#define ISCSI_FLAG_LOGIN_CURRENT_STAGE1		0x04
> +#define ISCSI_FLAG_LOGIN_CURRENT_STAGE2		0x08
> +#define ISCSI_FLAG_LOGIN_CURRENT_STAGE3		0x0C
>  #define ISCSI_FLAG_LOGIN_NEXT_STAGE_MASK	0x03	/* 2 bits */
> +#define ISCSI_FLAG_LOGIN_NEXT_STAGE1		0x01
> +#define ISCSI_FLAG_LOGIN_NEXT_STAGE2		0x02
> +#define ISCSI_FLAG_LOGIN_NEXT_STAGE3		0x03
>  
>  #define ISCSI_LOGIN_CURRENT_STAGE(flags) \
>  	((flags & ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK) >> 2)
> @@ -550,17 +556,25 @@ struct iscsi_logout_rsp {
>  struct iscsi_snack {
>  	uint8_t opcode;
>  	uint8_t flags;
> -	uint8_t rsvd2[14];
> +	uint8_t rsvd2[2];
> +	uint8_t hlength;
> +	uint8_t dlength[3];
> +	uint8_t lun[8];
>  	itt_t	 itt;
> +	__be32  ttt;
> +	uint8_t rsvd3[4];
> +	__be32  exp_statsn;
> +	uint8_t rsvd4[8];
>  	__be32	begrun;
>  	__be32	runlength;
> -	__be32	exp_statsn;
> -	__be32	rsvd3;
> -	__be32	exp_datasn;
> -	uint8_t rsvd6[8];
>  };
>  
>  /* SNACK PDU flags */
> +#define ISCSI_FLAG_SNACK_TYPE_DATA		0
> +#define ISCSI_FLAG_SNACK_TYPE_R2T		0
> +#define ISCSI_FLAG_SNACK_TYPE_STATUS		1
> +#define ISCSI_FLAG_SNACK_TYPE_DATA_ACK		2
> +#define ISCSI_FLAG_SNACK_TYPE_RDATA		3
>  #define ISCSI_FLAG_SNACK_TYPE_MASK	0x0F	/* 4 bits */
>  
>  /* Reject Message Header */
> 

-- 
Jesper Juhl <jj@...osbits.net>       http://www.chaosbits.net/
Don't top-post http://www.catb.org/jargon/html/T/top-post.html
Plain text mails only, please.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ