On 7/7/10 10:49 AM, Robert Love wrote:
> On Mon, 2010-06-28 at 10:48 -0700, Joe Eykholt wrote:
>> To pave the way for eliminating exchanges from incoming requests,
>> add simple inline fc_frame_sid() and fc_frame_did() functions
>> which get the FC_IDs from the frame header. This can be almost
>> as efficient as getting them from the sequence/exchange.
>>
>> Move ntohll, htonll, ntoh24 and hton24 to<scsi/fc_frame.h>
>> since we need them there and that's included by<scsi/libfc.h>
>>
>> Signed-off-by: Joe Eykholt<[email protected]>
>> ---
>> drivers/scsi/libfc/fc_lport.c | 12 ++++-------
>> drivers/scsi/libfc/fc_rport.c | 26 +++++-------------------
>> include/scsi/fc_frame.h | 45
>> ++++++++++++++++++++++++++++++++++++++++-
>> include/scsi/libfc.h | 18 ----------------
>> 4 files changed, 54 insertions(+), 47 deletions(-)
>>
>>
>> diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
>> index ec9850c..be3c2ce 100644
>> --- a/drivers/scsi/libfc/fc_lport.c
>> +++ b/drivers/scsi/libfc/fc_lport.c
>> @@ -800,7 +800,6 @@ static void fc_lport_recv_flogi_req(struct fc_seq *sp_in,
>> struct fc_lport *lport)
>> {
>> struct fc_frame *fp;
>> - struct fc_frame_header *fh;
>> struct fc_seq *sp;
>> struct fc_exch *ep;
>> struct fc_els_flogi *flp;
>> @@ -813,8 +812,7 @@ static void fc_lport_recv_flogi_req(struct fc_seq *sp_in,
>> FC_LPORT_DBG(lport, "Received FLOGI request while in state %s\n",
>> fc_lport_state(lport));
>>
>> - fh = fc_frame_header_get(rx_fp);
>> - remote_fid = ntoh24(fh->fh_s_id);
>> + remote_fid = fc_frame_sid(rx_fp);
>> flp = fc_frame_payload_get(rx_fp, sizeof(*flp));
>> if (!flp)
>> goto out;
>> @@ -910,7 +908,7 @@ static void fc_lport_recv_req(struct fc_lport *lport,
>> struct fc_seq *sp,
>> recv = fc_lport_recv_flogi_req;
>> break;
>> case ELS_LOGO:
>> - if (ntoh24(fh->fh_s_id) == FC_FID_FLOGI)
>> + if (fc_frame_sid(fp) == FC_FID_FLOGI)
>> recv = fc_lport_recv_logo_req;
>> break;
>> case ELS_RSCN:
>> @@ -1468,7 +1466,6 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct
>> fc_frame *fp,
>> void *lp_arg)
>> {
>> struct fc_lport *lport = lp_arg;
>> - struct fc_frame_header *fh;
>> struct fc_els_flogi *flp;
>> u32 did;
>> u16 csp_flags;
>> @@ -1496,8 +1493,7 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct
>> fc_frame *fp,
>> goto err;
>> }
>>
>> - fh = fc_frame_header_get(fp);
>> - did = ntoh24(fh->fh_d_id);
>> + did = fc_frame_did(fp);
>> if (fc_frame_payload_op(fp) == ELS_LS_ACC&& did != 0) {
>> flp = fc_frame_payload_get(fp, sizeof(*flp));
>> if (flp) {
>> @@ -1523,7 +1519,7 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct
>> fc_frame *fp,
>> "Port (%6.6x) entered "
>> "point-to-point mode\n",
>> lport->host->host_no, did);
>> - fc_lport_ptp_setup(lport, ntoh24(fh->fh_s_id),
>> + fc_lport_ptp_setup(lport, fc_frame_sid(fp),
>> get_unaligned_be64(
>> &flp->fl_wwpn),
>> get_unaligned_be64(
>> diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
>> index c06d63e..1234931 100644
>> --- a/drivers/scsi/libfc/fc_rport.c
>> +++ b/drivers/scsi/libfc/fc_rport.c
>> @@ -747,13 +747,11 @@ static void fc_rport_recv_flogi_req(struct fc_lport
>> *lport,
>> struct fc_rport_priv *rdata;
>> struct fc_frame *fp = rx_fp;
>> struct fc_exch *ep;
>> - struct fc_frame_header *fh;
>> struct fc_seq_els_data rjt_data;
>> u32 sid, f_ctl;
>>
>> rjt_data.fp = NULL;
>> - fh = fc_frame_header_get(fp);
>> - sid = ntoh24(fh->fh_s_id);
>> + sid = fc_frame_sid(fp);
>>
>> FC_RPORT_ID_DBG(lport, sid, "Received FLOGI request\n");
>
> Hey Joe,
>
> These patches don't apply to fcoe-next. My guess is that they only
> apply on top of your VN2VN patches. Do you want to add them to that
> series or update this series?
Hi Robert,
I'm sure you're right, the two series need to be applied in order. Isn't that
OK?
I submitted them in that order, but they are for different things,
so I don't thing the should be part of the same series.
Should I wait for one series to be applied before submitting the next one?
Thanks,
Joe
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel