Re: [PATCH 2/4] drivers/scsi/lpfc/lpfc_sli.c: convert GFP_KERNEL to GFP_ATOMIC

James Smart
2012-01-12T20:00:28Z

Julia,

We actually do not want any ATOMIC allocations if we can avoid them. We
reworked the calling sequence to deal with the locks being held. The change
will be in the next patch set.

As such - Nack on the patch.

-- james s

On 1/9/2012 4:40 AM, Julia Lawall wrote:
> From: Julia Lawall<julia.lawall@lip6.fr>
>
> The function is called with locks held and thus should not use GFP_KERNEL.
>
> The semantic patch that makes this report is available
> in scripts/coccinelle/locks/call_kern.cocci.
>
> More information about semantic patching is available at
> http://coccinelle.lip6.fr/
>
> Signed-off-by: Julia Lawall<julia.lawall@lip6.fr>
>
> ---
> drivers/scsi/lpfc/lpfc_sli.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c
> index 23a2759..622d24f 100644
> --- a/drivers/scsi/lpfc/lpfc_sli.c
> +++ b/drivers/scsi/lpfc/lpfc_sli.c
> @@ -601,7 +601,7 @@ __lpfc_set_rrq_active(struct lpfc_hba *phba, struct lpfc_nodelist *ndlp,
> if (test_and_set_bit(xritag, ndlp->active_rrqs.xri_bitmap))
> goto out;
>
> - rrq = mempool_alloc(phba->rrq_pool, GFP_KERNEL);
> + rrq = mempool_alloc(phba->rrq_pool, GFP_ATOMIC);
> if (rrq) {
> rrq->send_rrq = send_rrq;
> rrq->xritag = xritag;
>
>