On Wed, Nov 03, 2021 at 10:16:53PM +0100, Christophe JAILLET wrote: > Use 'percpu_ref_tryget_live_rcu()' instead of 'percpu_ref_tryget_live()' to > save a few cycles when it is known that the rcu lock is already > taken/released. > > Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> Applied to pci/p2pdma for v5.17, thanks! PCI/P2PDMA: Use percpu_ref_tryget_live_rcu() inside RCU critical section Since pci_alloc_p2pmem() has already called rcu_read_lock(), we're in an RCU read-side critical section and don't need to take the lock again. Use percpu_ref_tryget_live_rcu() instead of percpu_ref_tryget_live() to save a few cycles. > --- > drivers/pci/p2pdma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c > index 8d47cb7218d1..081c391690d4 100644 > --- a/drivers/pci/p2pdma.c > +++ b/drivers/pci/p2pdma.c > @@ -710,7 +710,7 @@ void *pci_alloc_p2pmem(struct pci_dev *pdev, size_t size) > if (!ret) > goto out; > > - if (unlikely(!percpu_ref_tryget_live(ref))) { > + if (unlikely(!percpu_ref_tryget_live_rcu(ref))) { > gen_pool_free(p2pdma->pool, (unsigned long) ret, size); > ret = NULL; > goto out; > -- > 2.30.2 >