From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
To: Marc Zyngier <marc.zyngier@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Jason Cooper <jason@lakedaemon.net>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>,
linux-kernel@vger.kernel.org
Subject: [PATCH 2/4] irqchip/gic-v3-its: move allocation outside mutex
Date: Tue, 12 Mar 2019 18:33:47 +0100 [thread overview]
Message-ID: <20190312173350.4025-3-linux@rasmusvillemoes.dk> (raw)
In-Reply-To: <20190312173350.4025-1-linux@rasmusvillemoes.dk>
There's no reason to do the allocation of the new lpi_range inside the
lpi_range_lock. One could change the code to avoid the allocation
altogether in case the freed range can be merged with one or two
existing ranges (in which case the allocation would naturally be done
under the lock), but it's probably not worth complicating the code for
that.
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
drivers/irqchip/irq-gic-v3-its.c | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
index 7577755bdcf4..5c8232cff290 100644
--- a/drivers/irqchip/irq-gic-v3-its.c
+++ b/drivers/irqchip/irq-gic-v3-its.c
@@ -1532,22 +1532,19 @@ static int alloc_lpi_range(u32 nr_lpis, u32 *base)
static int free_lpi_range(u32 base, u32 nr_lpis)
{
struct lpi_range *new;
- int err = 0;
-
- mutex_lock(&lpi_range_lock);
new = mk_lpi_range(base, nr_lpis);
- if (!new) {
- err = -ENOMEM;
- goto out;
- }
+ if (!new)
+ return -ENOMEM;
+
+ mutex_lock(&lpi_range_lock);
list_add(&new->entry, &lpi_range_list);
list_sort(NULL, &lpi_range_list, lpi_range_cmp);
merge_lpi_ranges();
-out:
+
mutex_unlock(&lpi_range_lock);
- return err;
+ return 0;
}
static int __init its_lpi_init(u32 id_bits)
--
2.20.1
next prev parent reply other threads:[~2019-03-12 17:34 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-12 17:33 [PATCH 0/4] irqchip/gic-v3-its: free_lpi_range tweaks Rasmus Villemoes
2019-03-12 17:33 ` [PATCH 1/4] irqchip/gic-v3-its: fix comparison logic in lpi_range_cmp Rasmus Villemoes
2019-03-12 17:33 ` Rasmus Villemoes [this message]
2019-03-12 17:33 ` [PATCH 3/4] irqchip/gic-v3-its: drop redundant initialization in mk_lpi_range Rasmus Villemoes
2019-03-12 17:33 ` [PATCH 4/4] irqchip/gic-v3-its: make free_lpi_range a little cheaper Rasmus Villemoes
2019-03-12 18:03 ` [PATCH 0/4] irqchip/gic-v3-its: free_lpi_range tweaks Marc Zyngier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190312173350.4025-3-linux@rasmusvillemoes.dk \
--to=linux@rasmusvillemoes.dk \
--cc=jason@lakedaemon.net \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®