Message ID | 20221028014834.572819-3-yury.norov@gmail.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp559435wru; Thu, 27 Oct 2022 18:49:41 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7gPhqjd8W5x8mHylUmdMzYEAKY30z0NcFInV4raUdjVzzjBswJcvDdUaGKNNfbyqNchLw+ X-Received: by 2002:a17:90a:e7c8:b0:213:1a7c:9dd2 with SMTP id kb8-20020a17090ae7c800b002131a7c9dd2mr13660609pjb.114.1666921781246; Thu, 27 Oct 2022 18:49:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666921781; cv=none; d=google.com; s=arc-20160816; b=joMvl0K2K1qysBqnmA2pr/7pkC7sUhAceBc2sd9V1A+jsW3vhOzjdtH0tVdIhfq6y5 syOeywdz++OhE0JdrmJKXSQMOwy8dLtcjPxwhcTWi+Bs9PUM/hTv3CONPiEVguLkOro1 vSqPPboIs1sW15UQl5Y2sE5UvijBfyk480Gu5IWwEToq2DMxfYXbCLWh3MOl6CwXkrx/ In2GirmnYOcBX6mcu84qAlX8p9pT1yPDpmSw5tV4NcN5DcmqcvWXPKSIla0wLS4eljxl 0gs4d1fWM2k5Zk0NCpqU5qGRZ2jxNpgw461h364XeQWbR2y1XcKTGljj4X097Vht8Cbj sprg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from :dkim-signature; bh=DS0XWl1Cbm55Pwimv/H351CT6M0z6e8AP3NS0QMe2jY=; b=t0wnSN2j7FbqnHFYG3L/zp9vxCymngsCrwmW+vYiPmvcCD87rXCSlpmOmrpWsiW5St X6xHgqjmyqU5pjna4MLRp2+zFeFxkxslaxg6ELtryFUcQLhP893QbComMuIRaH2sGzVe XY5kJ4nwtwQ/+8fwIz00kgMENJWp01PHF+1keKX2dabKt62qfCRncVLdzO+6flB8sMYF yTG1YRuGtVHmoVP36Ap3YQSI31c1p90GLbWtgUrMoB2HXy4MI0+t1cu0kjGyzYmOGgCl gsX4vspFmmIrkQiL9MJD/yh+F/VvpDqNMHcM/B/uYvGpYI7RAme3pmwc8rdmIaibcbj2 F6Og== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=TsU9DDtc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id pv16-20020a17090b3c9000b001fe41707a2esi7261156pjb.90.2022.10.27.18.49.28; Thu, 27 Oct 2022 18:49:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=TsU9DDtc; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235927AbiJ1Bsz (ORCPT <rfc822;chrisfriedt@gmail.com> + 99 others); Thu, 27 Oct 2022 21:48:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49548 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235168AbiJ1Bsl (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Thu, 27 Oct 2022 21:48:41 -0400 Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 664A1ACA11 for <linux-kernel@vger.kernel.org>; Thu, 27 Oct 2022 18:48:41 -0700 (PDT) Received: by mail-qt1-x82d.google.com with SMTP id c23so2706150qtw.8 for <linux-kernel@vger.kernel.org>; Thu, 27 Oct 2022 18:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=DS0XWl1Cbm55Pwimv/H351CT6M0z6e8AP3NS0QMe2jY=; b=TsU9DDtchGqKnMoyHMUxHjV8Qlh4o4T7gZdHTFyPH+yl+E+p47xyN0V/lIiPFRdBl+ oN6qGwSxIIXmY/I6PtOgLs36L/1jPOkA2GynFx5SsVGrZYTiRSZa1qUcgVyHWRFA9LGl EZd5rM3gJh5nDL7G8Deu2fk/gdniov82eR5Y8PMcW5dLx5HDLIinataviO0kiWJ8BFQv tHdjoZU5jGsWAj+Fxg4dM2wAQ2WP4oRXva2PJ/WK2wyrcc2dI02gKkdvop0x5SS83xzm yB9aG1fDftIlCeJRr8NaOol+Yaoi292QOp1QR8UtRt8bEnpqOopGVctWGsFzEd9Tx6l0 PtVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DS0XWl1Cbm55Pwimv/H351CT6M0z6e8AP3NS0QMe2jY=; b=R9zootEW0XO+SwuqyXMHtnExepni6g7iUBA0o2pDJle3Lv0UTeWrkLwh5muCbmO+pp wJGVk/qKTVh7gpHUQnSPUes3aDhQFkTsRksNo04FmiBR7ZKA0uSWgu9H/ocMvJaPf0D9 SUcmy3ZzspzqPI01NDtDuuPauTCuOiBQpJTJiUrjFg1rqOGOmY4M4GTazPtsx+IkbWHu iY3lAahg3KCBQrCwLvYyO57Z90lfkcsC9RuGpBx30woP47NpL6Ur4exvbE5KjY00GTPD WIjAOGvzJSYh4iT2sA1M/kLLqldih2OA1HeamsL5XGvX7YfQdG5jsHUXdm4EjM5oaL42 3xvA== X-Gm-Message-State: ACrzQf3BE08y/KztcIkPRw64kMiMP+3AV5Ydfa8Azmq3JwwyNErisi9b 0hv0TUw/hRNKwqLc2bZD4rpqE03YsRc= X-Received: by 2002:ac8:5f53:0:b0:39c:e315:114d with SMTP id y19-20020ac85f53000000b0039ce315114dmr45159293qta.346.1666921720240; Thu, 27 Oct 2022 18:48:40 -0700 (PDT) Received: from localhost ([2601:589:4102:4c7c:d8d0:78d7:ad97:2651]) by smtp.gmail.com with ESMTPSA id g23-20020ac84b77000000b003a4efd59754sm1724032qts.12.2022.10.27.18.48.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 27 Oct 2022 18:48:39 -0700 (PDT) From: Yury Norov <yury.norov@gmail.com> To: linux-kernel@vger.kernel.org, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Rasmus Villemoes <linux@rasmusvillemoes.dk>, Yury Norov <yury.norov@gmail.com> Subject: [PATCH 2/6] bitmap: replace _reg_op(REG_OP_ALLOC) with bitmap_set() Date: Thu, 27 Oct 2022 18:48:30 -0700 Message-Id: <20221028014834.572819-3-yury.norov@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20221028014834.572819-1-yury.norov@gmail.com> References: <20221028014834.572819-1-yury.norov@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747894173529575997?= X-GMAIL-MSGID: =?utf-8?q?1747894173529575997?= |
Series |
bitmap: remove _reg_op()
|
|
Commit Message
Yury Norov
Oct. 28, 2022, 1:48 a.m. UTC
_reg_op(REG_OP_ALLOC) duplicates bitmap_set(). Drop it.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
lib/bitmap.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
Greeting, FYI, we noticed BUG:KASAN:slab-out-of-bounds_in__bitmap_set due to commit (built with gcc-11): commit: 8cbe83be2e63293c368eb2d580f2f69cb8b35e43 ("[PATCH 2/6] bitmap: replace _reg_op(REG_OP_ALLOC) with bitmap_set()") url: https://github.com/intel-lab-lkp/linux/commits/Yury-Norov/bitmap-remove-_reg_op/20221028-095005 base: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git 23758867219c8d84c8363316e6dd2f9fd7ae3049 patch subject: [PATCH 2/6] bitmap: replace _reg_op(REG_OP_ALLOC) with bitmap_set() in testcase: ltp version: ltp-x86_64-14c1f76-1_20221009 with following parameters: disk: 1HDD fs: f2fs test: writev03.writev03 test-description: The LTP testsuite contains a collection of tools for testing the Linux kernel and related features. test-url: http://linux-test-project.github.io/ on test machine: 4 threads Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz (Skylake) with 32G memory caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): [ 8.260699][ T1] BUG: KASAN: slab-out-of-bounds in __bitmap_set (lib/bitmap.c:370) [ 8.260699][ T1] Read of size 8 at addr ffff88810023a000 by task swapper/0/1 [ 8.260699][ T1] [ 8.260699][ T1] CPU: 2 PID: 1 Comm: swapper/0 Tainted: G I 6.1.0-rc2-00194-g8cbe83be2e63 #1 [ 8.260699][ T1] Hardware name: Dell Inc. OptiPlex 7040/0Y7WYT, BIOS 1.1.1 10/07/2015 [ 8.260699][ T1] Call Trace: [ 8.260699][ T1] <TASK> [ 8.260699][ T1] dump_stack_lvl (lib/dump_stack.c:107 (discriminator 1)) [ 8.260699][ T1] print_address_description+0x87/0x2a1 [ 8.260699][ T1] print_report (mm/kasan/report.c:396) [ 8.260699][ T1] ? kasan_addr_to_slab (mm/kasan/common.c:35) [ 8.260699][ T1] ? __bitmap_set (lib/bitmap.c:370) [ 8.260699][ T1] kasan_report (mm/kasan/report.c:497) [ 8.260699][ T1] ? __bitmap_set (lib/bitmap.c:370) [ 8.260699][ T1] __bitmap_set (lib/bitmap.c:370) [ 8.260699][ T1] bitmap_find_free_region (lib/bitmap.c:1321) [ 8.260699][ T1] intel_irq_remapping_alloc (drivers/iommu/intel/irq_remapping.c:129 drivers/iommu/intel/irq_remapping.c:1358) [ 8.260699][ T1] ? local_pci_probe (drivers/pci/pci-driver.c:324) [ 8.260699][ T1] ? pci_call_probe (drivers/pci/pci-driver.c:392) [ 8.260699][ T1] ? driver_probe_device (drivers/base/dd.c:808) [ 8.260699][ T1] ? __driver_attach (drivers/base/dd.c:1191) [ 8.260699][ T1] ? bus_add_driver (drivers/base/bus.c:618) [ 8.260699][ T1] ? do_one_initcall (init/main.c:1303) [ 8.260699][ T1] ? do_initcalls (init/main.c:1375 init/main.c:1392) [ 8.260699][ T1] ? kernel_init_freeable (init/main.c:1635) [ 8.260699][ T1] ? kernel_init (init/main.c:1521) [ 8.260699][ T1] ? ret_from_fork (arch/x86/entry/entry_64.S:312) [ 8.260699][ T1] ? intel_irq_remapping_free (drivers/iommu/intel/irq_remapping.c:1327) [ 8.260699][ T1] ? __irq_domain_alloc_irqs (include/linux/slab.h:598 include/linux/slab.h:723 kernel/irq/irqdomain.c:1158 kernel/irq/irqdomain.c:1285 kernel/irq/irqdomain.c:1475) [ 8.260699][ T1] ? __irq_domain_alloc_irqs (include/linux/slab.h:598 include/linux/slab.h:723 kernel/irq/irqdomain.c:1158 kernel/irq/irqdomain.c:1285 kernel/irq/irqdomain.c:1475) [ 8.260699][ T1] msi_domain_alloc (kernel/irq/msi.c:543) [ 8.260699][ T1] ? msi_domain_free (kernel/irq/msi.c:532) [ 8.260699][ T1] ? __mutex_lock_slowpath (kernel/locking/mutex.c:282) [ 8.260699][ T1] __irq_domain_alloc_irqs (kernel/irq/irqdomain.c:1482) [ 8.260699][ T1] __msi_domain_alloc_irqs (kernel/irq/msi.c:896) [ 8.260699][ T1] ? _raw_write_lock_irq (kernel/locking/spinlock.c:153) [ 8.260699][ T1] ? msi_domain_prepare_irqs (kernel/irq/msi.c:855) [ 8.260699][ T1] ? xa_find (lib/xarray.c:2024) [ 8.260699][ T1] msi_domain_alloc_irqs_descs_locked (kernel/irq/msi.c:952) [ 8.260699][ T1] ? msi_find_desc (kernel/irq/msi.c:248) [ 8.260699][ T1] __pci_enable_msi_range (drivers/pci/msi/msi.c:458 drivers/pci/msi/msi.c:905) [ 8.260699][ T1] ? pci_disable_msi (drivers/pci/msi/msi.c:866) [ 8.260699][ T1] ? irq_spurious_proc_show (kernel/irq/proc.c:292) [ 8.260699][ T1] ? __pci_enable_msix_range (drivers/pci/msi/msi.c:359 drivers/pci/msi/msi.c:941) [ 8.260699][ T1] pci_alloc_irq_vectors_affinity (drivers/pci/msi/msi.c:1029) [ 8.260699][ T1] ? pci_conf1_read (arch/x86/pci/direct.c:49) [ 8.260699][ T1] ? pci_enable_msix_range (drivers/pci/msi/msi.c:1008) [ 8.260699][ T1] ? pci_bus_read_config_word (drivers/pci/access.c:67 (discriminator 2)) [ 8.260699][ T1] ? pci_bus_find_capability (drivers/pci/pci.c:544) [ 8.260699][ T1] pcie_port_enable_irq_vec (include/linux/pci.h:1907 drivers/pci/pcie/portdrv_core.c:107) [ 8.260699][ T1] ? get_port_device_capability (drivers/pci/pcie/portdrv_core.c:102) [ 8.260699][ T1] ? __pci_set_master (drivers/pci/pci.c:4383) [ 8.260699][ T1] ? pci_ea_read (drivers/pci/pci.c:4378) [ 8.260699][ T1] ? pci_address_to_pio+0x20/0x20 [ 8.260699][ T1] ? pci_enable_device_flags (drivers/pci/pci.c:2005) [ 8.260699][ T1] pcie_port_device_register (drivers/pci/pcie/portdrv_core.c:181 drivers/pci/pcie/portdrv_core.c:334) [ 8.260699][ T1] ? rpm_callback (drivers/base/power/runtime.c:755) [ 8.260699][ T1] ? pcie_port_service_unregister (drivers/pci/pcie/portdrv_core.c:312) [ 8.260699][ T1] ? _raw_read_unlock_irqrestore (kernel/locking/spinlock.c:161) [ 8.260699][ T1] ? __cond_resched (kernel/sched/core.c:8325) [ 8.260699][ T1] ? pcie_portdrv_remove (drivers/pci/pcie/portdrv_pci.c:103) [ 8.260699][ T1] pcie_portdrv_probe (drivers/pci/pcie/portdrv_pci.c:117) [ 8.260699][ T1] ? pcie_portdrv_remove (drivers/pci/pcie/portdrv_pci.c:103) [ 8.260699][ T1] local_pci_probe (drivers/pci/pci-driver.c:324) [ 8.260699][ T1] pci_call_probe (drivers/pci/pci-driver.c:392) [ 8.260699][ T1] ? _raw_spin_lock (arch/x86/include/asm/atomic.h:202 include/linux/atomic/atomic-instrumented.h:543 include/asm-generic/qspinlock.h:111 include/linux/spinlock.h:186 include/linux/spinlock_api_smp.h:134 kernel/locking/spinlock.c:154) [ 8.260699][ T1] ? local_pci_probe (drivers/pci/pci-driver.c:352) [ 8.260699][ T1] ? pci_assign_irq (drivers/pci/setup-irq.c:25) [ 8.260699][ T1] ? pci_match_device (drivers/pci/pci-driver.c:108 drivers/pci/pci-driver.c:159) [ 8.260699][ T1] ? kernfs_put (arch/x86/include/asm/atomic.h:123 (discriminator 1) include/linux/atomic/atomic-instrumented.h:576 (discriminator 1) fs/kernfs/dir.c:531 (discriminator 1)) [ 8.260699][ T1] pci_device_probe (drivers/pci/pci-driver.c:461) [ 8.260699][ T1] ? pci_dma_configure (drivers/pci/pci-driver.c:1647) [ 8.260699][ T1] really_probe (drivers/base/dd.c:560 drivers/base/dd.c:639) [ 8.260699][ T1] __driver_probe_device (drivers/base/dd.c:719 drivers/base/dd.c:776) [ 8.260699][ T1] driver_probe_device (drivers/base/dd.c:808) [ 8.260699][ T1] __driver_attach (drivers/base/dd.c:1191) [ 8.260699][ T1] ? __device_attach_driver (drivers/base/dd.c:1135) [ 8.260699][ T1] bus_for_each_dev (drivers/base/bus.c:301) [ 8.260699][ T1] ? subsys_dev_iter_exit (drivers/base/bus.c:290) [ 8.260699][ T1] ? __kmem_cache_alloc_node (mm/slub.c:3400 mm/slub.c:3437) [ 8.260699][ T1] ? klist_add_tail (include/linux/list.h:69 include/linux/list.h:102 lib/klist.c:104 lib/klist.c:137) [ 8.260699][ T1] bus_add_driver (drivers/base/bus.c:618) [ 8.260699][ T1] driver_register (drivers/base/driver.c:246) [ 8.260699][ T1] ? dmi_pcie_pme_disable_msi (drivers/pci/pcie/portdrv_pci.c:243) [ 8.260699][ T1] do_one_initcall (init/main.c:1303) [ 8.260699][ T1] ? trace_event_raw_event_initcall_level (init/main.c:1294) [ 8.260699][ T1] ? parse_one (kernel/params.c:170) [ 8.260699][ T1] ? do_initcalls (init/main.c:1386) [ 8.260699][ T1] ? kasan_set_track (mm/kasan/common.c:52) [ 8.260699][ T1] ? __kasan_kmalloc (mm/kasan/common.c:381) [ 8.260699][ T1] do_initcalls (init/main.c:1375 init/main.c:1392) [ 8.260699][ T1] kernel_init_freeable (init/main.c:1635) [ 8.260699][ T1] ? console_on_rootfs (init/main.c:1601) [ 8.260699][ T1] ? usleep_range_state (kernel/time/timer.c:1897) [ 8.260699][ T1] ? _raw_spin_lock_bh (kernel/locking/spinlock.c:169) [ 8.260699][ T1] ? rest_init (init/main.c:1511) [ 8.260699][ T1] ? rest_init (init/main.c:1511) [ 8.260699][ T1] kernel_init (init/main.c:1521) [ 8.260699][ T1] ret_from_fork (arch/x86/entry/entry_64.S:312) [ 8.260699][ T1] </TASK> [ 8.260699][ T1] If you fix the issue, kindly add following tag | Reported-by: kernel test robot <yujie.liu@intel.com> | Link: https://lore.kernel.org/oe-lkp/202211111357.9e363da2-yujie.liu@intel.com To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests sudo bin/lkp install job.yaml # job file is attached in this email bin/lkp split-job --compatible job.yaml # generate the yaml file for lkp run sudo bin/lkp run generated-yaml-file # if come across any failure that blocks the test, # please remove ~/.lkp and /lkp dir to run from a clean state.
diff --git a/lib/bitmap.c b/lib/bitmap.c index 1c81413c51f8..28630b57b2ab 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -1317,7 +1317,7 @@ int bitmap_find_free_region(unsigned long *bitmap, unsigned int bits, int order) for (pos = 0 ; (end = pos + (1U << order)) <= bits; pos = end) { if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) continue; - __reg_op(bitmap, pos, order, REG_OP_ALLOC); + bitmap_set(bitmap, pos, pos + BIT(order)); return pos; } return -ENOMEM; @@ -1356,7 +1356,8 @@ int bitmap_allocate_region(unsigned long *bitmap, unsigned int pos, int order) { if (!__reg_op(bitmap, pos, order, REG_OP_ISFREE)) return -EBUSY; - return __reg_op(bitmap, pos, order, REG_OP_ALLOC); + bitmap_set(bitmap, pos, pos + BIT(order)); + return 0; } EXPORT_SYMBOL(bitmap_allocate_region);