2008-12-16 15:15:45

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 9/11] drivers/scsi: Move a dereference below a NULL test

From: Julia Lawall <[email protected]>

In each case, if the NULL test is necessary, then the dereference should be
moved below the NULL test.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
type T;
expression E;
identifier i,fld;
statement S;
@@

- T i = E->fld;
+ T i;
... when != E
when != i
if (E == NULL) S
+ i = E->fld;
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/scsi/lpfc/lpfc_init.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 909be33..9a01cf0 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -1736,12 +1736,13 @@ lpfc_block_mgmt_io(struct lpfc_hba * phba)
int
lpfc_online(struct lpfc_hba *phba)
{
- struct lpfc_vport *vport = phba->pport;
+ struct lpfc_vport *vport;
struct lpfc_vport **vports;
int i;

if (!phba)
return 0;
+ vport = phba->pport;

if (!(vport->fc_flag & FC_OFFLINE_MODE))
return 0;


2008-12-16 15:31:22

by James Smart

[permalink] [raw]
Subject: Re: [PATCH 9/11] drivers/scsi: Move a dereference below a NULL test

ACK

-- james s

Julia Lawall wrote:
> From: Julia Lawall <[email protected]>
>
> In each case, if the NULL test is necessary, then the dereference should be
> moved below the NULL test.
>
> The semantic patch that makes this change is as follows:
> (http://www.emn.fr/x-info/coccinelle/)
>
> // <smpl>
> @@
> type T;
> expression E;
> identifier i,fld;
> statement S;
> @@
>
> - T i = E->fld;
> + T i;
> ... when != E
> when != i
> if (E == NULL) S
> + i = E->fld;
> // </smpl>
>
> Signed-off-by: Julia Lawall <[email protected]>
>
> ---
> drivers/scsi/lpfc/lpfc_init.c | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
> index 909be33..9a01cf0 100644
> --- a/drivers/scsi/lpfc/lpfc_init.c
> +++ b/drivers/scsi/lpfc/lpfc_init.c
> @@ -1736,12 +1736,13 @@ lpfc_block_mgmt_io(struct lpfc_hba * phba)
> int
> lpfc_online(struct lpfc_hba *phba)
> {
> - struct lpfc_vport *vport = phba->pport;
> + struct lpfc_vport *vport;
> struct lpfc_vport **vports;
> int i;
>
> if (!phba)
> return 0;
> + vport = phba->pport;
>
> if (!(vport->fc_flag & FC_OFFLINE_MODE))
> return 0;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>