Messages in this thread Patch in this message | | | From | Yury Norov <> | Subject | [PATCH v3 07/35] sparc: optimize alloc_msi() by using find_and_set_bit() | Date | Mon, 11 Dec 2023 18:27:21 -0800 |
| |
alloc_msi() opencodes find_and_set_bit(). Simplify it by using the dedicated function, and make an nice one-liner.
Signed-off-by: Yury Norov <yury.norov@gmail.com> --- arch/sparc/kernel/pci_msi.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/arch/sparc/kernel/pci_msi.c b/arch/sparc/kernel/pci_msi.c index fc7402948b7b..91105c788d1d 100644 --- a/arch/sparc/kernel/pci_msi.c +++ b/arch/sparc/kernel/pci_msi.c @@ -96,14 +96,9 @@ static u32 pick_msiq(struct pci_pbm_info *pbm) static int alloc_msi(struct pci_pbm_info *pbm) { - int i; - - for (i = 0; i < pbm->msi_num; i++) { - if (!test_and_set_bit(i, pbm->msi_bitmap)) - return i + pbm->msi_first; - } + int i = find_and_set_bit(pbm->msi_bitmap, pbm->msi_num); - return -ENOENT; + return i < pbm->msi_num ? i + pbm->msi_first : -ENOENT; } static void free_msi(struct pci_pbm_info *pbm, int msi_num) -- 2.40.1
| |