Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1635182 > unrolled thread

[scsi-qedf] question about parameter ordering

Started by"Gustavo A. R. Silva" <garsilva@embeddedor.com>
First post2017-05-03 20:00 +0200
Last post2017-05-03 21:30 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [scsi-qedf] question about parameter ordering "Gustavo A. R. Silva" <garsilva@embeddedor.com> - 2017-05-03 20:00 +0200
    Re: [scsi-qedf] question about parameter ordering Randy Dunlap <rdunlap@infradead.org> - 2017-05-03 20:40 +0200
    Re: [scsi-qedf] question about parameter ordering "Gustavo A. R. Silva" <garsilva@embeddedor.com> - 2017-05-03 21:30 +0200

#1635182 — [scsi-qedf] question about parameter ordering

From"Gustavo A. R. Silva" <garsilva@embeddedor.com>
Date2017-05-03 20:00 +0200
Subject[scsi-qedf] question about parameter ordering
Message-ID<tD6Jc-a7-13@gated-at.bofh.it>
Hello everybody,

While looking into Coverity ID 1402011 I ran into the following piece  
of code at drivers/scsi/qedf/qedf_io.c:2057:

/* Fill FC header */
fc_hdr = &(tm_req->req_fc_hdr);
sid = fcport->sid;
did = fcport->rdata->ids.port_id;
__fc_fill_fc_hdr(fc_hdr, FC_RCTL_DD_UNSOL_CMD, sid, did,
                    FC_TYPE_FCP, FC_FC_FIRST_SEQ | FC_FC_END_SEQ |
                    FC_FC_SEQ_INIT, 0);

The issue here is that the position of arguments in the call to  
__fc_fill_fc_hdr() function do not match the ordering of the parameters:

_sid_ is passed to _did_
_did_ is passed to _sid_

this is the function prototype:

static inline void __fc_fill_fc_hdr(struct fc_frame_header *fh,
                                     enum fc_rctl r_ctl,
                                     u32 did, u32 sid, enum fc_fh_type type,
                                     u32 f_ctl, u32 parm_offset)

My question here is if this is intentional?

In case it is not, I will send a patch to fix it. But first it would  
be great to hear any comment about it.

By the way... the same is happening at drivers/scsi/qedf/qedf_els.c:109

Thank you
--
Gustavo A. R. Silva

[toc] | [next] | [standalone]


#1635195

FromRandy Dunlap <rdunlap@infradead.org>
Date2017-05-03 20:40 +0200
Message-ID<tD7lT-DA-1@gated-at.bofh.it>
In reply to#1635182
On 05/03/17 11:29, Chad Dupuis wrote:
> 
> On Wed, 3 May 2017, 1:58pm, Gustavo A. R. Silva wrote:
> 
>>
>> Hello everybody,
>>
>> While looking into Coverity ID 1402011 I ran into the following piece of code
>> at drivers/scsi/qedf/qedf_io.c:2057:
>>
>> /* Fill FC header */
>> fc_hdr = &(tm_req->req_fc_hdr);
>> sid = fcport->sid;
>> did = fcport->rdata->ids.port_id;
>> __fc_fill_fc_hdr(fc_hdr, FC_RCTL_DD_UNSOL_CMD, sid, did,
>>                   FC_TYPE_FCP, FC_FC_FIRST_SEQ | FC_FC_END_SEQ |
>>                   FC_FC_SEQ_INIT, 0);
>>
>> The issue here is that the position of arguments in the call to
>> __fc_fill_fc_hdr() function do not match the ordering of the parameters:
>>
>> _sid_ is passed to _did_
>> _did_ is passed to _sid_
>>
>> this is the function prototype:
>>
>> static inline void __fc_fill_fc_hdr(struct fc_frame_header *fh,
>>                                    enum fc_rctl r_ctl,
>>                                    u32 did, u32 sid, enum fc_fh_type type,
>>                                    u32 f_ctl, u32 parm_offset)
>>
>> My question here is if this is intentionala?
> 
> This may have been but this code has been superseded by commit 	
> be086e7c53f1fac51eed14523b28f2214b548dd2.B

what git tree is that in?

Thanks.

>> In case it is not, I will send a patch to fix it. But first it would be great
>> to hear any comment about it.
>>
>> By the way... the same is happening at drivers/scsi/qedf/qedf_els.c:109
> 
> May be a bug here so you could send a patch.


-- 
~Randy

[toc] | [prev] | [next] | [standalone]


#1635228

From"Gustavo A. R. Silva" <garsilva@embeddedor.com>
Date2017-05-03 21:30 +0200
Message-ID<tD88h-1cl-5@gated-at.bofh.it>
In reply to#1635182
Hi Chad,

Quoting Chad Dupuis <chad.dupuis@cavium.com>:

> On Wed, 3 May 2017, 1:58pm, Gustavo A. R. Silva wrote:
>
>>
>> Hello everybody,
>>
>> While looking into Coverity ID 1402011 I ran into the following  
>> piece of code
>> at drivers/scsi/qedf/qedf_io.c:2057:
>>
>> /* Fill FC header */
>> fc_hdr = &(tm_req->req_fc_hdr);
>> sid = fcport->sid;
>> did = fcport->rdata->ids.port_id;
>> __fc_fill_fc_hdr(fc_hdr, FC_RCTL_DD_UNSOL_CMD, sid, did,
>>                   FC_TYPE_FCP, FC_FC_FIRST_SEQ | FC_FC_END_SEQ |
>>                   FC_FC_SEQ_INIT, 0);
>>
>> The issue here is that the position of arguments in the call to
>> __fc_fill_fc_hdr() function do not match the ordering of the parameters:
>>
>> _sid_ is passed to _did_
>> _did_ is passed to _sid_
>>
>> this is the function prototype:
>>
>> static inline void __fc_fill_fc_hdr(struct fc_frame_header *fh,
>>                                    enum fc_rctl r_ctl,
>>                                    u32 did, u32 sid, enum fc_fh_type type,
>>                                    u32 f_ctl, u32 parm_offset)
>>
>> My question here is if this is intentionala?
>
> This may have been but this code has been superseded by commit
> be086e7c53f1fac51eed14523b28f2214b548dd2.B
>>

Oh OK, great.

>> In case it is not, I will send a patch to fix it. But first it  
>> would be great
>> to hear any comment about it.
>>
>> By the way... the same is happening at drivers/scsi/qedf/qedf_els.c:109
>
> May be a bug here so you could send a patch.
>

I'll send a patch for this shortly.

Thanks for your comments.
--
Gustavo A. R. Silva

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web