All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yury Norov <yury.norov@gmail.com>
To: linux-kernel@vger.kernel.org,
	"David S. Miller" <davem@davemloft.net>,
	Rob Herring <robh@kernel.org>, Sam Ravnborg <sam@ravnborg.org>,
	Yury Norov <yury.norov@gmail.com>,
	sparclinux@vger.kernel.org
Cc: Jan Kara <jack@suse.cz>,
	Mirsad Todorovac <mirsad.todorovac@alu.unizg.hr>,
	Matthew Wilcox <willy@infradead.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>,
	Alexey Klimov <klimov.linux@gmail.com>,
	Bart Van Assche <bvanassche@acm.org>,
	Sergey Shtylyov <s.shtylyov@omp.ru>
Subject: [PATCH v2 07/35] sparc: fix opencoded find_and_set_bit() in alloc_msi()
Date: Sun,  3 Dec 2023 11:32:39 -0800	[thread overview]
Message-ID: <20231203193307.542794-6-yury.norov@gmail.com> (raw)
In-Reply-To: <20231203193307.542794-1-yury.norov@gmail.com>

alloc_msi() opencodes find_and_clear_bit(). Switch it to 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


  parent reply	other threads:[~2023-12-03 19:33 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-03 19:23 [PATCH v2 00/35] bitops: add atomic find_bit() operations Yury Norov
2023-12-03 19:23 ` Yury Norov
2023-12-03 19:23 ` [PATCH v2 01/35] lib/find: add atomic find_bit() primitives Yury Norov
2023-12-03 19:23   ` Yury Norov
2023-12-03 19:56   ` bitops: add atomic find_bit() operations bluez.test.bot
2023-12-03 19:32 ` [PATCH v2 02/35] lib/find: add test for atomic find_bit() ops Yury Norov
2023-12-03 19:32   ` Yury Norov
2023-12-03 19:32   ` [PATCH v2 03/35] lib/sbitmap; make __sbitmap_get_word() using find_and_set_bit() Yury Norov
2023-12-04 18:22     ` Jan Kara
2023-12-04 18:40     ` Jens Axboe
2023-12-03 19:32   ` [PATCH v2 04/35] watch_queue: use atomic find_bit() in post_one_notification() Yury Norov
2023-12-03 19:32   ` [PATCH v2 05/35] sched: add cpumask_find_and_set() and use it in __mm_cid_get() Yury Norov
2023-12-03 19:32   ` [PATCH v2 06/35] mips: sgi-ip30: rework heart_alloc_int() Yury Norov
2023-12-03 19:32   ` Yury Norov [this message]
2023-12-03 19:32   ` [PATCH v2 08/35] perf/arm: optimize opencoded atomic find_bit() API Yury Norov
2023-12-03 19:32     ` Yury Norov
2023-12-03 19:32   ` [PATCH v2 09/35] drivers/perf: optimize ali_drw_get_counter_idx() by using find_bit() Yury Norov
2023-12-03 19:32     ` Yury Norov
2023-12-03 19:32   ` [PATCH v2 10/35] dmaengine: idxd: optimize perfmon_assign_event() Yury Norov
2023-12-03 19:32   ` [PATCH v2 11/35] ath10k: optimize ath10k_snoc_napi_poll() by using find_bit() Yury Norov
2023-12-03 19:32   ` [PATCH v2 12/35] wifi: rtw88: optimize rtw_pci_tx_kick_off() " Yury Norov
2023-12-03 19:32   ` [PATCH v2 13/35] KVM: x86: hyper-v: optimize and cleanup kvm_hv_process_stimers() Yury Norov
2023-12-04  9:53     ` Vitaly Kuznetsov
2023-12-04 16:00       ` Sean Christopherson
2023-12-03 19:32   ` [PATCH v2 14/35] PCI: hv: switch hv_get_dom_num() to use atomic find_bit() Yury Norov
2023-12-04  5:58     ` Wei Liu
2023-12-04 19:14     ` Bjorn Helgaas
2023-12-08 18:34       ` Yury Norov
2023-12-03 19:32   ` [PATCH v2 15/35] scsi: core: use atomic find_bit() API where appropriate Yury Norov
2023-12-03 19:32   ` [PATCH v2 16/35] scsi: mpi3mr: switch to using atomic find_and_set_bit() Yury Norov
2023-12-03 19:32   ` [PATCH v2 17/35] scsi: qedi: rework qedi_get_task_idx() Yury Norov
2023-12-03 19:32   ` [PATCH v2 18/35] powerpc: use atomic find_bit() API where appropriate Yury Norov
2023-12-03 19:32     ` Yury Norov
2023-12-03 19:32   ` [PATCH v2 19/35] iommu: " Yury Norov
2023-12-03 19:32     ` Yury Norov
2023-12-03 19:32   ` [PATCH v2 20/35] media: radio-shark: " Yury Norov
2023-12-04  8:43     ` Hans Verkuil
2023-12-03 19:32   ` [PATCH v2 21/35] sfc: switch to using " Yury Norov
2023-12-03 19:32   ` [PATCH v2 22/35] tty: nozomi: optimize interrupt_handler() Yury Norov
2023-12-03 19:32   ` [PATCH v2 23/35] usb: cdc-acm: optimize acm_softint() Yury Norov
2023-12-03 19:32   ` [PATCH v2 24/35] block: null_blk: fix opencoded find_and_set_bit() in get_tag() Yury Norov
2023-12-04 18:26     ` Jan Kara
2023-12-05  2:39     ` Chengming Zhou
2023-12-03 19:32   ` [PATCH v2 25/35] RDMA/rtrs: fix opencoded find_and_set_bit_lock() in __rtrs_get_permit() Yury Norov
2023-12-03 19:32   ` [PATCH v2 26/35] mISDN: optimize get_free_devid() Yury Norov
2023-12-03 19:32   ` [PATCH v2 27/35] media: em28xx: cx231xx: fix opencoded find_and_set_bit() Yury Norov
2023-12-04  8:39     ` Hans Verkuil
2023-12-04 13:05       ` Andy Shevchenko
2023-12-04 13:09         ` Hans Verkuil
2023-12-03 19:33   ` [PATCH v2 28/35] ethernet: rocker: optimize ofdpa_port_internal_vlan_id_get() Yury Norov
2023-12-03 19:33   ` [PATCH v2 29/35] serial: sc12is7xx: optimize sc16is7xx_alloc_line() Yury Norov
2023-12-03 19:33   ` [PATCH v2 30/35] bluetooth: optimize cmtp_alloc_block_id() Yury Norov
2023-12-03 19:33   ` [PATCH v2 31/35] net: smc: use find_and_set_bit() in smc_wr_tx_get_free_slot_index() Yury Norov
2023-12-04  9:40     ` Alexandra Winter
2023-12-11 22:34       ` Yury Norov
2023-12-03 19:33   ` [PATCH v2 32/35] ALSA: use atomic find_bit() functions where applicable Yury Norov
2023-12-03 19:33   ` [PATCH v2 33/35] m68k: rework get_mmu_context() Yury Norov
2023-12-03 19:33   ` [PATCH v2 34/35] microblaze: " Yury Norov
2023-12-03 19:33   ` [PATCH v2 35/35] sh: mach-x3proto: rework ilsel_enable() Yury Norov
2024-01-19  8:48     ` Geert Uytterhoeven
2023-12-04 13:07 ` [PATCH v2 00/35] bitops: add atomic find_bit() operations Andy Shevchenko
2023-12-04 13:07   ` Andy Shevchenko
2023-12-04 18:51 ` Jan Kara
2023-12-04 18:51   ` Jan Kara
2023-12-06  5:22   ` Yury Norov
2023-12-06  5:22     ` Yury Norov
2023-12-07  9:10     ` Jan Kara
2023-12-07  9:10       ` Jan Kara

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=20231203193307.542794-6-yury.norov@gmail.com \
    --to=yury.norov@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bvanassche@acm.org \
    --cc=davem@davemloft.net \
    --cc=jack@suse.cz \
    --cc=klimov.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=maxim.kuvyrkov@linaro.org \
    --cc=mirsad.todorovac@alu.unizg.hr \
    --cc=robh@kernel.org \
    --cc=s.shtylyov@omp.ru \
    --cc=sam@ravnborg.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=willy@infradead.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.