Message ID | 20250301013712.3115-2-kartilak@cisco.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] scsi: fnic: Replace fnic->lock_flags with local flags | expand |
On Fri, Feb 28, 2025 at 05:37:12PM -0800, Karan Tilak Kumar wrote: > Remove unnecessary locking and unlocking of spinlock in > fdls_schedule_oxid_free_retry_work. > This will shorten the time in the critical section. > > Suggested-by: Dan Carpenter <dan.carpenter@linaro.org> > Fixes: a63e78eb2b0f ("scsi: fnic: Add support for fabric based solicited requests and responses") > Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com> > Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com> > Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com> > Reviewed-by: Arun Easi <aeasi@cisco.com> > Tested-by: Karan Tilak Kumar <kartilak@cisco.com> > Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com> > --- > Changes between v1 and v2: > Incorporate review comments by Dan: > Replace test and clear bit with clear bit. > --- Thanks! I'm not really qualified to give a reviewed-by tag to this, but it looks okay to me. regards, dan carpenter
On Saturday, March 1, 2025 3:29 AM, Dan Carpenter <dan.carpenter@linaro.org> wrote: > > On Fri, Feb 28, 2025 at 05:37:12PM -0800, Karan Tilak Kumar wrote: > > Remove unnecessary locking and unlocking of spinlock in > > fdls_schedule_oxid_free_retry_work. > > This will shorten the time in the critical section. > > > > Suggested-by: Dan Carpenter <dan.carpenter@linaro.org> > > Fixes: a63e78eb2b0f ("scsi: fnic: Add support for fabric based solicited requests and responses") > > Reviewed-by: Sesidhar Baddela <sebaddel@cisco.com> > > Reviewed-by: Arulprabhu Ponnusamy <arulponn@cisco.com> > > Reviewed-by: Gian Carlo Boffa <gcboffa@cisco.com> > > Reviewed-by: Arun Easi <aeasi@cisco.com> > > Tested-by: Karan Tilak Kumar <kartilak@cisco.com> > > Signed-off-by: Karan Tilak Kumar <kartilak@cisco.com> > > --- > > Changes between v1 and v2: > > Incorporate review comments by Dan: > > Replace test and clear bit with clear bit. > > --- > > Thanks! > > I'm not really qualified to give a reviewed-by tag to this, but it looks > okay to me. > > regards, > dan carpenter > > Thanks for your review and comments, Dan. Appreciate your help. Regards, Karan
diff --git a/drivers/scsi/fnic/fdls_disc.c b/drivers/scsi/fnic/fdls_disc.c index 8843d9486dbb..a9ffa7b63730 100644 --- a/drivers/scsi/fnic/fdls_disc.c +++ b/drivers/scsi/fnic/fdls_disc.c @@ -311,36 +311,26 @@ void fdls_schedule_oxid_free_retry_work(struct work_struct *work) unsigned long flags; int idx; - spin_lock_irqsave(&fnic->fnic_lock, flags); - for_each_set_bit(idx, oxid_pool->pending_schedule_free, FNIC_OXID_POOL_SZ) { FNIC_FCS_DBG(KERN_INFO, fnic->host, fnic->fnic_num, "Schedule oxid free. oxid idx: %d\n", idx); - spin_unlock_irqrestore(&fnic->fnic_lock, flags); reclaim_entry = kzalloc(sizeof(*reclaim_entry), GFP_KERNEL); - spin_lock_irqsave(&fnic->fnic_lock, flags); - if (!reclaim_entry) { schedule_delayed_work(&oxid_pool->schedule_oxid_free_retry, msecs_to_jiffies(SCHEDULE_OXID_FREE_RETRY_TIME)); - spin_unlock_irqrestore(&fnic->fnic_lock, flags); return; } - if (test_and_clear_bit(idx, oxid_pool->pending_schedule_free)) { - reclaim_entry->oxid_idx = idx; - reclaim_entry->expires = round_jiffies(jiffies + delay_j); - list_add_tail(&reclaim_entry->links, &oxid_pool->oxid_reclaim_list); - schedule_delayed_work(&oxid_pool->oxid_reclaim_work, delay_j); - } else { - /* unlikely scenario, free the allocated memory and continue */ - kfree(reclaim_entry); - } + clear_bit(idx, oxid_pool->pending_schedule_free); + reclaim_entry->oxid_idx = idx; + reclaim_entry->expires = round_jiffies(jiffies + delay_j); + spin_lock_irqsave(&fnic->fnic_lock, flags); + list_add_tail(&reclaim_entry->links, &oxid_pool->oxid_reclaim_list); + spin_unlock_irqrestore(&fnic->fnic_lock, flags); + schedule_delayed_work(&oxid_pool->oxid_reclaim_work, delay_j); } - - spin_unlock_irqrestore(&fnic->fnic_lock, flags); } static bool fdls_is_oxid_fabric_req(uint16_t oxid)