lkml.org 
[lkml]   [2022]   [Sep]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH v2 3/6] scsi: pm8001: Remove pm8001_tag_init()
    On Fri, Sep 30, 2022 at 11:03 AM John Garry <john.garry@huawei.com> wrote:
    >
    > From: Igor Pylypiv <ipylypiv@google.com>
    >
    > In commit 5a141315ed7c ("scsi: pm80xx: Increase the number of outstanding
    > I/O supported to 1024") the pm8001_ha->tags allocation was moved into
    > pm8001_init_ccb_tag(). This changed the execution order of allocation.
    > pm8001_tag_init() used to be called after the pm8001_ha->tags allocation
    > and now it is called before the allocation.
    >
    > Before:
    >
    > pm8001_pci_probe()
    > `--> pm8001_pci_alloc()
    > `--> pm8001_alloc()
    > `--> pm8001_ha->tags = kzalloc(...)
    > `--> pm8001_tag_init(pm8001_ha); // OK: tags are allocated
    >
    > After:
    >
    > pm8001_pci_probe()
    > `--> pm8001_pci_alloc()
    > | `--> pm8001_alloc()
    > | `--> pm8001_tag_init(pm8001_ha); // NOK: tags are not allocated
    > |
    > `--> pm8001_init_ccb_tag()
    > `--> pm8001_ha->tags = kzalloc(...) // today it is bitmap_zalloc()
    >
    > Since pm8001_ha->tags_num is zero when pm8001_tag_init() is called it does
    > nothing. Tags memory is allocated with bitmap_zalloc() so there is no need
    > to manually clear each bit with pm8001_tag_free().
    >
    > Reviewed-by: Changyuan Lyu <changyuanl@google.com>
    > Signed-off-by: Igor Pylypiv <ipylypiv@google.com>
    > Signed-off-by: John Garry <john.garry@huawei.com>
    > Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Reviewed-by: Jack Wang <jinpu.wang@ionos.com>
    > ---
    > drivers/scsi/pm8001/pm8001_init.c | 2 --
    > drivers/scsi/pm8001/pm8001_sas.c | 7 -------
    > drivers/scsi/pm8001/pm8001_sas.h | 1 -
    > 3 files changed, 10 deletions(-)
    >
    > diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
    > index a0028e130a7e..0edc9857a8bd 100644
    > --- a/drivers/scsi/pm8001/pm8001_init.c
    > +++ b/drivers/scsi/pm8001/pm8001_init.c
    > @@ -436,8 +436,6 @@ static int pm8001_alloc(struct pm8001_hba_info *pm8001_ha,
    > atomic_set(&pm8001_ha->devices[i].running_req, 0);
    > }
    > pm8001_ha->flags = PM8001F_INIT_TIME;
    > - /* Initialize tags */
    > - pm8001_tag_init(pm8001_ha);
    > return 0;
    >
    > err_out_nodev:
    > diff --git a/drivers/scsi/pm8001/pm8001_sas.c b/drivers/scsi/pm8001/pm8001_sas.c
    > index d5ec29f69be3..066dfa9f4683 100644
    > --- a/drivers/scsi/pm8001/pm8001_sas.c
    > +++ b/drivers/scsi/pm8001/pm8001_sas.c
    > @@ -96,13 +96,6 @@ int pm8001_tag_alloc(struct pm8001_hba_info *pm8001_ha, u32 *tag_out)
    > return 0;
    > }
    >
    > -void pm8001_tag_init(struct pm8001_hba_info *pm8001_ha)
    > -{
    > - int i;
    > - for (i = 0; i < pm8001_ha->tags_num; ++i)
    > - pm8001_tag_free(pm8001_ha, i);
    > -}
    > -
    > /**
    > * pm8001_mem_alloc - allocate memory for pm8001.
    > * @pdev: pci device.
    > diff --git a/drivers/scsi/pm8001/pm8001_sas.h b/drivers/scsi/pm8001/pm8001_sas.h
    > index 8ab0654327f9..9acaadf02150 100644
    > --- a/drivers/scsi/pm8001/pm8001_sas.h
    > +++ b/drivers/scsi/pm8001/pm8001_sas.h
    > @@ -632,7 +632,6 @@ extern struct workqueue_struct *pm8001_wq;
    >
    > /******************** function prototype *********************/
    > int pm8001_tag_alloc(struct pm8001_hba_info *pm8001_ha, u32 *tag_out);
    > -void pm8001_tag_init(struct pm8001_hba_info *pm8001_ha);
    > u32 pm8001_get_ncq_tag(struct sas_task *task, u32 *tag);
    > void pm8001_ccb_task_free(struct pm8001_hba_info *pm8001_ha,
    > struct pm8001_ccb_info *ccb);
    > --
    > 2.35.3
    >

    \
     
     \ /
      Last update: 2022-09-30 11:17    [W:2.668 / U:0.328 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site