mailweb.openeuler.org
Manage this list

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

Kernel

Threads by month
  • ----- 2025 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
kernel@openeuler.org

  • 41 participants
  • 21844 discussions
[openeuler:OLK-6.6 3534/3534] htmldocs: Documentation/networking/hinic3.rst:3: WARNING: Title overline too short.
by kernel test robot 12 Dec '25

12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: dcb286ce50a35a77e51b61db72c7cc001647b598 [3534/3534] net/hinic3: add huawei/hinic3 driver reproduce: (https://download.01.org/0day-ci/archive/20251212/202512120048.AHnbZM2r-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512120048.AHnbZM2r-lkp@intel.com/ All warnings (new ones prefixed by >>): WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -sphinx-version 8.2.3 -function ethtool_pause_stats ./include/linux/ethtool.h' failed with return code 1 WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -sphinx-version 8.2.3 -function ethtool_fec_stats ./include/linux/ethtool.h' failed with return code 1 WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -sphinx-version 8.2.3 -function ethtool_mm_state ./include/linux/ethtool.h' failed with return code 1 WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -sphinx-version 8.2.3 -function ethtool_mm_stats ./include/linux/ethtool.h' failed with return code 1 WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -sphinx-version 8.2.3 -function ethtool_mm_cfg ./include/linux/ethtool.h' failed with return code 1 >> Documentation/networking/hinic3.rst:3: WARNING: Title overline too short. -- ============================================================ Linux Kernel Driver for Huawei Intelligent NIC(HiNIC3) family ============================================================ [docutils] >> Documentation/networking/hinic3.rst:117: WARNING: Title underline too short. -- Miscellaneous: ============= [docutils] >> Documentation/networking/hinic3.rst:117: WARNING: Title underline too short. vim +3 Documentation/networking/hinic3.rst 2 > 3 ============================================================ 4 Linux Kernel Driver for Huawei Intelligent NIC(HiNIC3) family 5 ============================================================ 6 7 Overview: 8 ========= 9 HiNIC3 is a network interface card for the Data Center Area. 10 11 The driver supports a range of link-speed devices (10GbE, 25GbE, 40GbE, etc.). 12 The driver supports also a negotiated and extendable feature set. 13 14 Some HiNIC3 devices support SR-IOV. This driver is used for Physical Function 15 (PF). 16 17 HiNIC3 devices support MSI-X interrupt vector for each Tx/Rx queue and 18 adaptive interrupt moderation. 19 20 HiNIC3 devices support also various offload features such as checksum offload, 21 TCP Transmit Segmentation Offload(TSO), Receive-Side Scaling(RSS) and 22 LRO(Large Receive Offload). 23 24 25 Supported PCI vendor ID/device IDs: 26 =================================== 27 28 19e5:1822 - HiNIC3 PF 29 30 31 Driver Architecture and Source Code: 32 ==================================== 33 34 hinic3_dev - Implement a Logical Network device that is independent from 35 specific HW details about HW data structure formats. 36 37 hinic3_hwdev - Implement the HW details of the device and include the components 38 for accessing the PCI NIC. 39 40 hinic3_hwdev contains the following components: 41 =============================================== 42 43 HW Interface: 44 ============= 45 46 The interface for accessing the pci device (DMA memory and PCI BARs). 47 (hinic3_hw_if.c, hinic3_hw_if.h) 48 49 Configuration Status Registers Area that describes the HW Registers on the 50 configuration and status BAR0. (hinic3_hw_csr.h) 51 52 MGMT components: 53 ================ 54 55 Asynchronous Event Queues(AEQs) - The event queues for receiving messages from 56 the MGMT modules on the cards. (hinic3_hw_eqs.c, hinic3_hw_eqs.h) 57 58 Application Programmable Interface commands(API CMD) - Interface for sending 59 MGMT commands to the card. (hinic3_hw_api_cmd.c, hinic3_hw_api_cmd.h) 60 61 Management (MGMT) - the PF to MGMT channel that uses API CMD for sending MGMT 62 commands to the card and receives notifications from the MGMT modules on the 63 card by AEQs. Also set the addresses of the IO CMDQs in HW. 64 (hinic3_hw_mgmt.c, hinic3_hw_mgmt.h) 65 66 IO components: 67 ============== 68 69 Completion Event Queues(CEQs) - The completion Event Queues that describe IO 70 tasks that are finished. (hinic3_hw_eqs.c, hinic3_hw_eqs.h) 71 72 Work Queues(WQ) - Contain the memory and operations for use by CMD queues and 73 the Queue Pairs. The WQ is a Memory Block in a Page. The Block contains 74 pointers to Memory Areas that are the Memory for the Work Queue Elements(WQEs). 75 (hinic3_hw_wq.c, hinic3_hw_wq.h) 76 77 Command Queues(CMDQ) - The queues for sending commands for IO management and is 78 used to set the QPs addresses in HW. The commands completion events are 79 accumulated on the CEQ that is configured to receive the CMDQ completion events. 80 (hinic3_hw_cmdq.c, hinic3_hw_cmdq.h) 81 82 Queue Pairs(QPs) - The HW Receive and Send queues for Receiving and Transmitting 83 Data. (hinic3_hw_qp.c, hinic3_hw_qp.h, hinic3_hw_qp_ctxt.h) 84 85 IO - de/constructs all the IO components. (hinic3_hw_io.c, hinic3_hw_io.h) 86 87 HW device: 88 ========== 89 90 HW device - de/constructs the HW Interface, the MGMT components on the 91 initialization of the driver and the IO components on the case of Interface 92 UP/DOWN Events. (hinic3_hw_dev.c, hinic3_hw_dev.h) 93 94 95 hinic3_dev contains the following components: 96 =============================================== 97 98 PCI ID table - Contains the supported PCI Vendor/Device IDs. 99 (hinic3_pci_tbl.h) 100 101 Port Commands - Send commands to the HW device for port management 102 (MAC, Vlan, MTU, ...). (hinic3_port.c, hinic3_port.h) 103 104 Tx Queues - Logical Tx Queues that use the HW Send Queues for transmit. 105 The Logical Tx queue is not dependent on the format of the HW Send Queue. 106 (hinic3_tx.c, hinic3_tx.h) 107 108 Rx Queues - Logical Rx Queues that use the HW Receive Queues for receive. 109 The Logical Rx queue is not dependent on the format of the HW Receive Queue. 110 (hinic3_rx.c, hinic3_rx.h) 111 112 hinic_dev - de/constructs the Logical Tx and Rx Queues. 113 (hinic3_main.c, hinic3_dev.h) 114 115 116 Miscellaneous: > 117 ============= 118 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3536/3536] kernel/sched/core.c:11374:5: warning: no previous prototype for function 'tg_set_dynamic_affinity_mode'
by kernel test robot 12 Dec '25

12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: 6eb07f9925a906d81f328c808ba25f7800888dce [3536/3536] sched: Introduce smart grid scheduling strategy for cfs config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20251212/202512120744.b8phlWWR-lkp@…) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251212/202512120744.b8phlWWR-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512120744.b8phlWWR-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from kernel/sched/core.c:9: In file included from include/linux/highmem.h:8: In file included from include/linux/cacheflush.h:5: In file included from arch/x86/include/asm/cacheflush.h:5: In file included from include/linux/mm.h:2181: include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 509 | item]; | ~~~~ include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 516 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 528 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 537 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ >> kernel/sched/core.c:11374:5: warning: no previous prototype for function 'tg_set_dynamic_affinity_mode' [-Wmissing-prototypes] 11374 | int tg_set_dynamic_affinity_mode(struct task_group *tg, u64 mode) | ^ kernel/sched/core.c:11374:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 11374 | int tg_set_dynamic_affinity_mode(struct task_group *tg, u64 mode) | ^ | static >> kernel/sched/core.c:11415:5: warning: no previous prototype for function 'tg_set_affinity_period' [-Wmissing-prototypes] 11415 | int tg_set_affinity_period(struct task_group *tg, u64 period_ms) | ^ kernel/sched/core.c:11415:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 11415 | int tg_set_affinity_period(struct task_group *tg, u64 period_ms) | ^ | static >> kernel/sched/core.c:11429:5: warning: no previous prototype for function 'tg_get_affinity_period' [-Wmissing-prototypes] 11429 | u64 tg_get_affinity_period(struct task_group *tg) | ^ kernel/sched/core.c:11429:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 11429 | u64 tg_get_affinity_period(struct task_group *tg) | ^ | static 8 warnings generated. vim +/tg_set_dynamic_affinity_mode +11374 kernel/sched/core.c 11372 11373 #ifdef CONFIG_QOS_SCHED_SMART_GRID 11374 int tg_set_dynamic_affinity_mode(struct task_group *tg, u64 mode) 11375 { 11376 struct auto_affinity *auto_affi = tg->auto_affinity; 11377 11378 if (unlikely(!auto_affi)) 11379 return -EPERM; 11380 11381 /* auto mode */ 11382 if (mode == 1) 11383 start_auto_affinity(auto_affi); 11384 else if (mode == 0) 11385 stop_auto_affinity(auto_affi); 11386 else 11387 return -EINVAL; 11388 11389 return 0; 11390 } 11391 11392 static u64 cpu_affinity_mode_read_u64(struct cgroup_subsys_state *css, 11393 struct cftype *cft) 11394 { 11395 struct task_group *tg = css_tg(css); 11396 11397 if (!dynamic_affinity_enabled()) 11398 return -EPERM; 11399 11400 if (unlikely(!tg->auto_affinity)) 11401 return -EPERM; 11402 11403 return tg->auto_affinity->mode; 11404 } 11405 11406 static int cpu_affinity_mode_write_u64(struct cgroup_subsys_state *css, 11407 struct cftype *cftype, u64 mode) 11408 { 11409 if (!dynamic_affinity_enabled()) 11410 return -EPERM; 11411 11412 return tg_set_dynamic_affinity_mode(css_tg(css), mode); 11413 } 11414 11415 int tg_set_affinity_period(struct task_group *tg, u64 period_ms) 11416 { 11417 if (unlikely(!tg->auto_affinity)) 11418 return -EPERM; 11419 11420 if (!period_ms || period_ms > U64_MAX / NSEC_PER_MSEC) 11421 return -EINVAL; 11422 11423 raw_spin_lock_irq(&tg->auto_affinity->lock); 11424 tg->auto_affinity->period = ms_to_ktime(period_ms); 11425 raw_spin_unlock_irq(&tg->auto_affinity->lock); 11426 return 0; 11427 } 11428 11429 u64 tg_get_affinity_period(struct task_group *tg) 11430 { 11431 if (unlikely(!tg->auto_affinity)) 11432 return -EPERM; 11433 11434 return ktime_to_ms(tg->auto_affinity->period); 11435 } 11436 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3508/3508] drivers/dax/super.c:45: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'dax_device'
by kernel test robot 12 Dec '25

12 Dec '25
Hi Long, FYI, the error/warning still remains. tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: 63101913bbd057cea31fb598eeb4a4c91584f0f0 [3508/3508] dax: kabi: Reserve KABI slots for dax_* struct config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251211/202512112304.Mi0KvHRe-lkp@…) compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 4125e73cdc6188cca4c1c72b72e2b2d85c157483) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251211/202512112304.Mi0KvHRe-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512112304.Mi0KvHRe-lkp@intel.com/ All warnings (new ones prefixed by >>): >> drivers/dax/super.c:45: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'dax_device' vim +45 drivers/dax/super.c 7b6be8444e0f0d Dan Williams 2017-04-11 17 1b7646014e0d83 Christoph Hellwig 2021-08-26 18 /** 1b7646014e0d83 Christoph Hellwig 2021-08-26 19 * struct dax_device - anchor object for dax services 1b7646014e0d83 Christoph Hellwig 2021-08-26 20 * @inode: core vfs 1b7646014e0d83 Christoph Hellwig 2021-08-26 21 * @cdev: optional character interface for "device dax" 1b7646014e0d83 Christoph Hellwig 2021-08-26 22 * @private: dax driver private data 1b7646014e0d83 Christoph Hellwig 2021-08-26 23 * @flags: state and boolean properties db8cd5efeebc49 Ira Weiny 2022-03-04 24 * @ops: operations for this device 8012b866085523 Shiyang Ruan 2022-06-03 25 * @holder_data: holder of a dax_device: could be filesystem or mapped device 8012b866085523 Shiyang Ruan 2022-06-03 26 * @holder_ops: operations for the inner holder 1b7646014e0d83 Christoph Hellwig 2021-08-26 27 */ 1b7646014e0d83 Christoph Hellwig 2021-08-26 28 struct dax_device { 1b7646014e0d83 Christoph Hellwig 2021-08-26 29 struct inode inode; 1b7646014e0d83 Christoph Hellwig 2021-08-26 30 struct cdev cdev; 1b7646014e0d83 Christoph Hellwig 2021-08-26 31 void *private; 1b7646014e0d83 Christoph Hellwig 2021-08-26 32 unsigned long flags; 1b7646014e0d83 Christoph Hellwig 2021-08-26 33 const struct dax_operations *ops; 8012b866085523 Shiyang Ruan 2022-06-03 34 void *holder_data; 8012b866085523 Shiyang Ruan 2022-06-03 35 const struct dax_holder_operations *holder_ops; 63101913bbd057 Long Li 2024-02-07 36 63101913bbd057 Long Li 2024-02-07 37 KABI_RESERVE(1) 63101913bbd057 Long Li 2024-02-07 38 KABI_RESERVE(2) 63101913bbd057 Long Li 2024-02-07 39 KABI_RESERVE(3) 63101913bbd057 Long Li 2024-02-07 40 KABI_RESERVE(4) 63101913bbd057 Long Li 2024-02-07 41 KABI_RESERVE(5) 63101913bbd057 Long Li 2024-02-07 42 KABI_RESERVE(6) 63101913bbd057 Long Li 2024-02-07 43 KABI_RESERVE(7) 63101913bbd057 Long Li 2024-02-07 44 KABI_RESERVE(8) 1b7646014e0d83 Christoph Hellwig 2021-08-26 @45 }; 1b7646014e0d83 Christoph Hellwig 2021-08-26 46 :::::: The code at line 45 was first introduced by commit :::::: 1b7646014e0d838b06be7288e2dec3262948cc56 dax: mark dax_get_by_host static :::::: TO: Christoph Hellwig <hch(a)lst.de> :::::: CC: Dan Williams <dan.j.williams(a)intel.com> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3508/3508] drivers/firmware/uvb/odf/odf_trans.c:119:42: error: implicit declaration of function 'memremap'
by kernel test robot 12 Dec '25

12 Dec '25
Hi klmengkd, First bad commit (maybe != root cause): tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: e440694adcf8b5ee8eab5914302130003d121a0e [3508/3508] uvb: change dir name config: arm64-randconfig-r112-20251210 (https://download.01.org/0day-ci/archive/20251212/202512120523.uRmzPGgB-lkp@…) compiler: aarch64-linux-gcc (GCC) 13.4.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251212/202512120523.uRmzPGgB-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512120523.uRmzPGgB-lkp@intel.com/ All error/warnings (new ones prefixed by >>): >> drivers/firmware/uvb/odf/odf_get_fdt.c:14:5: warning: no previous prototype for 'odf_get_fdt_ubiostbl' [-Wmissing-prototypes] 14 | int odf_get_fdt_ubiostbl(u64 *phys_addr, char *tbl) | ^~~~~~~~~~~~~~~~~~~~ -- >> drivers/firmware/uvb/odf/odf_trans.c:28:6: warning: no previous prototype for 'free_cis_info' [-Wmissing-prototypes] 28 | void free_cis_info(void) | ^~~~~~~~~~~~~ drivers/firmware/uvb/odf/odf_trans.c: In function 'create_cis_info_from_odf': >> drivers/firmware/uvb/odf/odf_trans.c:119:42: error: implicit declaration of function 'memremap' [-Werror=implicit-function-declaration] 119 | header = memremap(ubrt_table->sub_tables[i].pointer, | ^~~~~~~~ >> drivers/firmware/uvb/odf/odf_trans.c:120:73: error: 'MEMREMAP_WB' undeclared (first use in this function) 120 | sizeof(struct ubios_od_header), MEMREMAP_WB); | ^~~~~~~~~~~ drivers/firmware/uvb/odf/odf_trans.c:120:73: note: each undeclared identifier is reported only once for each function it appears in >> drivers/firmware/uvb/odf/odf_trans.c:126:33: error: implicit declaration of function 'memunmap'; did you mean 'memcmp'? [-Werror=implicit-function-declaration] 126 | memunmap(header); | ^~~~~~~~ | memcmp drivers/firmware/uvb/odf/odf_trans.c: In function 'create_uvb_info_from_odf': drivers/firmware/uvb/odf/odf_trans.c:304:73: error: 'MEMREMAP_WB' undeclared (first use in this function) 304 | sizeof(struct ubios_od_header), MEMREMAP_WB); | ^~~~~~~~~~~ drivers/firmware/uvb/odf/odf_trans.c: In function 'create_odf_info': drivers/firmware/uvb/odf/odf_trans.c:406:72: error: 'MEMREMAP_WB' undeclared (first use in this function) 406 | memremap(od_root_phys, sizeof(struct ubios_od_header), MEMREMAP_WB); | ^~~~~~~~~~~ cc1: some warnings being treated as errors -- >> drivers/firmware/uvb/odf/odf_helper.c:28:4: warning: no previous prototype for 'odf_read8' [-Wmissing-prototypes] 28 | u8 odf_read8(u8 *address) | ^~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:33:5: warning: no previous prototype for 'odf_read16' [-Wmissing-prototypes] 33 | u16 odf_read16(u8 *address) | ^~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:41:5: warning: no previous prototype for 'odf_read32' [-Wmissing-prototypes] 41 | u32 odf_read32(u8 *address) | ^~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:49:5: warning: no previous prototype for 'odf_read64' [-Wmissing-prototypes] 49 | u64 odf_read64(u8 *address) | ^~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:57:5: warning: no previous prototype for 'odf_checksum' [-Wmissing-prototypes] 57 | u32 odf_checksum(u8 *data, u32 size) | ^~~~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:86:6: warning: no previous prototype for 'odf_is_checksum_ok' [-Wmissing-prototypes] 86 | bool odf_is_checksum_ok(struct ubios_od_header *header) | ^~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:97:6: warning: no previous prototype for 'odf_update_checksum' [-Wmissing-prototypes] 97 | void odf_update_checksum(struct ubios_od_header *header) | ^~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:115:5: warning: no previous prototype for 'odf_separate_name' [-Wmissing-prototypes] 115 | int odf_separate_name(char **path, char *name, u64 max_len, u16 *index) | ^~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:179:6: warning: no previous prototype for 'odf_get_vs_by_pointer' [-Wmissing-prototypes] 179 | void odf_get_vs_by_pointer(u8 *data, struct ubios_od_value_struct *vs) | ^~~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:222:6: warning: no previous prototype for 'is_od_root_valid' [-Wmissing-prototypes] 222 | bool is_od_root_valid(struct ubios_od_root *root) | ^~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:242:6: warning: no previous prototype for 'is_od_file_valid' [-Wmissing-prototypes] 242 | bool is_od_file_valid(u8 *file) | ^~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/odf/odf_helper.c:267:5: warning: no previous prototype for 'odf_get_od_file' [-Wmissing-prototypes] 267 | u8 *odf_get_od_file(struct ubios_od_root *root, char *name) | ^~~~~~~~~~~~~~~ -- >> drivers/firmware/uvb/cis/cis_info_process.c:26:6: warning: no previous prototype for 'ubios_prepare_output_data' [-Wmissing-prototypes] 26 | void ubios_prepare_output_data(struct cis_message *io_param, void *output, u32 *output_size) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:45:5: warning: no previous prototype for 'get_cis_group_info' [-Wmissing-prototypes] 45 | int get_cis_group_info(u32 call_id, u32 receiver_id, | ^~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:87:23: warning: no previous prototype for 'search_local_cis_func_node' [-Wmissing-prototypes] 87 | struct cis_func_node *search_local_cis_func_node(u32 call_id, u32 receiver_id) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:163:32: warning: no previous prototype for 'uvb_occupy_window' [-Wmissing-prototypes] 163 | struct uvb_window_description *uvb_occupy_window(struct uvb *uvb, u32 sender_id, u64 *wd_obtain) | ^~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:225:6: warning: no previous prototype for 'uvb_free_wd_obtain' [-Wmissing-prototypes] 225 | void uvb_free_wd_obtain(u64 *wd_obtain) | ^~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:233:5: warning: no previous prototype for 'uvb_free_window' [-Wmissing-prototypes] 233 | int uvb_free_window(struct uvb_window *window) | ^~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:306:5: warning: no previous prototype for 'uvb_fill_window' [-Wmissing-prototypes] 306 | int uvb_fill_window(struct uvb_window_description *wd, struct uvb_window *wd_addr, | ^~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:331:5: warning: no previous prototype for 'uvb_poll_window_call' [-Wmissing-prototypes] 331 | int uvb_poll_window_call(struct uvb_window *window, u32 call_id) | ^~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:353:5: warning: no previous prototype for 'uvb_poll_window_call_sync' [-Wmissing-prototypes] 353 | int uvb_poll_window_call_sync(struct uvb_window *window, u32 call_id) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:370:5: warning: no previous prototype for 'uvb_get_output_data' [-Wmissing-prototypes] 370 | int uvb_get_output_data(struct uvb_window *window, | ^~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:392:6: warning: no previous prototype for 'free_io_param_with_buffer' [-Wmissing-prototypes] 392 | void free_io_param_with_buffer(struct cis_message *io_param) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:402:5: warning: no previous prototype for 'cis_call_uvb' [-Wmissing-prototypes] 402 | int cis_call_uvb(u8 index, struct udfi_para *para) | ^~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_info_process.c:473:5: warning: no previous prototype for 'cis_call_uvb_sync' [-Wmissing-prototypes] 473 | int cis_call_uvb_sync(u8 index, struct udfi_para *para) | ^~~~~~~~~~~~~~~~~ -- >> drivers/firmware/uvb/cis/uvb_info_process.c:129:6: warning: no previous prototype for 'search_local_receiver_id' [-Wmissing-prototypes] 129 | bool search_local_receiver_id(u32 receiver_id) | ^~~~~~~~~~~~~~~~~~~~~~~~ -- >> drivers/firmware/uvb/cis/cis_core.c:25:5: warning: no previous prototype for 'create_uvb_poll_window_thread' [-Wmissing-prototypes] 25 | int create_uvb_poll_window_thread(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_core.c:38:6: warning: no previous prototype for 'uvb_poll_window_thread_stop' [-Wmissing-prototypes] 38 | void uvb_poll_window_thread_stop(void) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_core.c:86:5: warning: no previous prototype for 'init_uvb' [-Wmissing-prototypes] 86 | int init_uvb(void) | ^~~~~~~~ >> drivers/firmware/uvb/cis/cis_core.c:111:5: warning: no previous prototype for 'init_global_vars' [-Wmissing-prototypes] 111 | int init_global_vars(void) | ^~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_core.c:120:5: warning: no previous prototype for 'init_cis_table' [-Wmissing-prototypes] 120 | int init_cis_table(void) | ^~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_core.c:130:6: warning: no previous prototype for 'free_global_vars' [-Wmissing-prototypes] 130 | void free_global_vars(void) | ^~~~~~~~~~~~~~~~ >> drivers/firmware/uvb/cis/cis_core.c:136:6: warning: no previous prototype for 'uninit_uvb' [-Wmissing-prototypes] 136 | void uninit_uvb(void) | ^~~~~~~~~~ -- >> drivers/firmware/uvb/cis/uvb_info_process.c:18: warning: Cannot understand Calculate checksum in 4bytes, if size not aligned with 4bytes, padding with 0. on line 18 - I thought it was a doc line -- >> drivers/firmware/uvb/cis/cis_info_process.c:615: warning: expecting prototype for cis_call(). Prototype was for cis_call_by_uvb() instead -- >> drivers/firmware/uvb/odf/odf_helper.c:84: warning: Cannot understand Only calculate the valid data region on line 84 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_helper.c:175: warning: Cannot understand @brief Get a name/value structrue by the data pointer on line 175 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_helper.c:260: warning: Cannot understand @brief Search all pointer in od root, return the specific od file matched the input name. on line 260 - I thought it was a doc line -- >> drivers/firmware/uvb/odf/odf_data.c:16: warning: Cannot understand @brief Search and match one value name, return the pointer of value structrue if matched. on line 16 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:55: warning: Cannot understand Change value structure by index in a list, the name will not be changed, on line 55 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:70: warning: Cannot understand Change the value structure with index, move the pointer to the data indicated by index, on line 70 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:87: warning: Cannot understand Search one od file, input value path, output the value structure, contains value info on line 87 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:131: warning: Cannot understand Search all od file in the root, input value path, output the value structure, contains value info. on line 131 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:174: warning: Cannot understand @brief Get table information like row, colomn, sub types, .etc. on line 174 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:232: warning: Cannot understand @brief Get a value's offset in row of table, will check type first. on line 232 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:296: warning: Cannot understand @brief Get a value pointer from table according name and row, will check type first. on line 296 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:408: warning: Cannot understand @brief Get a ubios od value struct from od root according to the path on line 408 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:429: warning: Cannot understand @brief Get a list from od root, will return a list info structure. on line 429 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:473: warning: Cannot understand @brief Get a value structure from list by index. on line 473 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:546: warning: Cannot understand @brief Get next value of a list. on line 546 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:594: warning: Cannot understand Internal function, get data pointer by path and type. on line 594 - I thought it was a doc line >> drivers/firmware/uvb/odf/odf_data.c:686: warning: Cannot understand Get table in the value structure. on line 686 - I thought it was a doc line Kconfig warnings: (for reference only) WARNING: unmet direct dependencies detected for HALTPOLL_CPUIDLE Depends on [n]: CPU_IDLE [=n] && ARCH_CPUIDLE_HALTPOLL [=y] && ARCH_HAS_OPTIMIZED_POLL [=y] Selected by [y]: - ARM64 [=y] sparse warnings: (new ones prefixed by >>) >> drivers/firmware/uvb/odf/odf_get_fdt.c:29:54: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __be32 const [usertype] *p @@ got unsigned int const [usertype] * @@ drivers/firmware/uvb/odf/odf_get_fdt.c:29:54: sparse: expected restricted __be32 const [usertype] *p drivers/firmware/uvb/odf/odf_get_fdt.c:29:54: sparse: got unsigned int const [usertype] * -- >> drivers/firmware/uvb/cis/uvb_info_process.c:129:6: sparse: sparse: symbol 'search_local_receiver_id' was not declared. Should it be static? -- >> drivers/firmware/uvb/cis/cis_core.c:25:5: sparse: sparse: symbol 'create_uvb_poll_window_thread' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_core.c:38:6: sparse: sparse: symbol 'uvb_poll_window_thread_stop' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_core.c:86:5: sparse: sparse: symbol 'init_uvb' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_core.c:111:5: sparse: sparse: symbol 'init_global_vars' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_core.c:120:5: sparse: sparse: symbol 'init_cis_table' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_core.c:130:6: sparse: sparse: symbol 'free_global_vars' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_core.c:136:6: sparse: sparse: symbol 'uninit_uvb' was not declared. Should it be static? -- >> drivers/firmware/uvb/cis/cis_info_process.c:23:1: sparse: sparse: symbol 'cis_register_lock' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:26:6: sparse: sparse: symbol 'ubios_prepare_output_data' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:45:5: sparse: sparse: symbol 'get_cis_group_info' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:87:22: sparse: sparse: symbol 'search_local_cis_func_node' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:163:31: sparse: sparse: symbol 'uvb_occupy_window' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:225:6: sparse: sparse: symbol 'uvb_free_wd_obtain' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:233:5: sparse: sparse: symbol 'uvb_free_window' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:306:5: sparse: sparse: symbol 'uvb_fill_window' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:331:5: sparse: sparse: symbol 'uvb_poll_window_call' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:353:5: sparse: sparse: symbol 'uvb_poll_window_call_sync' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:370:5: sparse: sparse: symbol 'uvb_get_output_data' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:392:6: sparse: sparse: symbol 'free_io_param_with_buffer' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:402:5: sparse: sparse: symbol 'cis_call_uvb' was not declared. Should it be static? >> drivers/firmware/uvb/cis/cis_info_process.c:473:5: sparse: sparse: symbol 'cis_call_uvb_sync' was not declared. Should it be static? vim +/memremap +119 drivers/firmware/uvb/odf/odf_trans.c 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 27 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 @28 void free_cis_info(void) 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 29 { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 30 u32 i; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 31 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 32 if (!g_cis_info) 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 33 return; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 34 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 35 for (i = 0; i < (g_cis_info)->group_count; i++) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 36 if ((g_cis_info)->groups[i]) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 37 kfree((g_cis_info)->groups[i]); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 38 (g_cis_info)->groups[i] = NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 39 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 40 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 41 kfree(g_cis_info); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 42 g_cis_info = NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 43 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 44 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 45 static struct cis_group *create_group_from_vs(struct ubios_od_value_struct *vs) 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 46 { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 47 struct ubios_od_list_info list; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 48 struct cis_group *group; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 49 int status; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 50 int i; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 51 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 52 status = odf_get_list_from_struct(vs, ODF_NAME_CIS_CALL_ID, &list); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 53 if (status) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 54 pr_err("create group: get [call id list] failed, err = %d\n", status); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 55 return NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 56 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 57 group = kzalloc(sizeof(struct cis_group) + (sizeof(u32) * list.count), GFP_KERNEL); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 58 if (!group) 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 59 return NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 60 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 61 status = odf_get_u32_from_struct(vs, ODF_NAME_CIS_OWNER, &(group->owner_user_id)); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 62 if (status) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 63 pr_err("create group: get [owner id] failed, err = %d\n", status); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 64 goto fail; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 65 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 66 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 67 status = odf_get_u8_from_struct(vs, ODF_NAME_CIS_USAGE, &(group->usage)); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 68 if (status) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 69 pr_err("create group: get [usage] failed, err = %d\n", status); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 70 goto fail; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 71 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 72 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 73 status = odf_get_u8_from_struct(vs, ODF_NAME_CIS_INDEX, &(group->index)); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 74 if (status) c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 75 pr_info("cis group not get [index], use default value\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 76 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 77 status = odf_get_u32_from_struct(vs, ODF_NAME_CIS_FORWARDER_ID, &(group->forwarder_id)); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 78 if (status) c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 79 pr_info("cis group not get forwarder, use default value\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 80 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 81 group->cis_count = list.count; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 82 for (i = 0; i < list.count; i++) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 83 status = odf_get_u32_from_list(&list, i, &(group->call_id[i])); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 84 if (status) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 85 pr_err("create group: get each call id failed, err = %d\n", status); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 86 goto fail; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 87 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 88 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 89 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 90 return group; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 91 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 92 fail: 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 93 kfree(group); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 94 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 95 return NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 96 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 97 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 98 static int create_cis_info_from_odf(void) 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 99 { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 100 struct ubios_od_list_info list; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 101 struct ubios_od_value_struct vs; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 102 struct ubios_od_value_struct ub_vs; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 103 struct ubios_ubrt_table *ubrt_table = NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 104 struct acpi_table_header *table = NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 105 u8 *sub_table = NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 106 struct ubios_od_header *header = NULL; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 107 acpi_status status; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 108 int i = 0; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 109 int err = 0; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 110 u32 sub_table_size = 0; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 111 int ub_vs_err = 0; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 112 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 113 status = acpi_get_table(ACPI_SIG_UBRT, 0, &table); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 114 if (ACPI_SUCCESS(status)) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 115 ubrt_table = (struct ubios_ubrt_table *)table; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 116 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 117 for (i = 0; i < ubrt_table->count; i++) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 118 if (ubrt_table->sub_tables[i].type == UBRT_CALL_ID_SERVICE) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 @119 header = memremap(ubrt_table->sub_tables[i].pointer, 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 @120 sizeof(struct ubios_od_header), MEMREMAP_WB); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 121 if (!header) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 122 pr_err("failed to map cis table to od header in ACPI\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 123 return -ENOMEM; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 124 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 125 sub_table_size = header->total_size; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 @126 memunmap(header); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 127 sub_table = (u8 *)memremap(ubrt_table->sub_tables[i].pointer, 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 128 sub_table_size, MEMREMAP_WB); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 129 break; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 130 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 131 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 132 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 133 if (!sub_table) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 134 pr_err("failed to get cis table address in ACPI\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 135 return -ENOMEM; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 136 } c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 137 pr_info("get cis sub table success\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 138 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 139 err = odf_get_list_from_table(sub_table, ODF_NAME_CIS_GROUP, &list); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 140 if (err) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 141 pr_err("create cis info from odf failed, group not found, err = %d\n", 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 142 err); c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 143 goto free_sub_table; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 144 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 145 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 146 ub_vs_err = odf_get_vs_from_table(sub_table, ODF_NAME_CIS_UB, &ub_vs); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 147 } else { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 148 err = odf_get_list(od_root, 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 149 ODF_FILE_NAME_CALL_ID_SERVICE "/" ODF_NAME_CIS_GROUP, &list); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 150 if (err) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 151 pr_err("create cis info from odf failed, group not found, err = %d\n", 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 152 err); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 153 return err; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 154 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 155 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 156 ub_vs_err = odf_get_struct(od_root, 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 157 ODF_FILE_NAME_CALL_ID_SERVICE "/" ODF_NAME_CIS_UB, &ub_vs); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 158 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 159 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 160 g_cis_info = kzalloc(sizeof(struct cis_info) + (sizeof(void *) * list.count), GFP_KERNEL); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 161 if (!g_cis_info) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 162 err = -ENOMEM; c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 163 goto free_sub_table; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 164 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 165 g_cis_info->group_count = list.count; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 166 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 167 err = odf_get_data_from_list(&list, 0, &vs); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 168 if (err) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 169 pr_err("create cis info from odf failed: get data from CIS group failed, err = %d\n", 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 170 err); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 171 goto fail; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 172 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 173 for (i = 0; i < list.count; i++) { 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 174 g_cis_info->groups[i] = create_group_from_vs(&vs); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 175 if (!g_cis_info->groups[i]) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 176 pr_err("create cis group from odf failed\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 177 err = -ENODATA; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 178 goto fail; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 179 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 180 (void)odf_next_in_list(&list, &vs); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 181 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 182 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 183 if (!ub_vs_err) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 184 pr_info("found ub struct in cis info\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 185 err = odf_get_u8_from_struct(&ub_vs, ODF_NAME_CIS_USAGE, &(g_cis_info->ub.usage)); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 186 if (err) { c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 187 pr_err("create group: get [usage] failed, err = %d\n", status); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 188 goto fail; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 189 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 190 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 191 err = odf_get_u8_from_struct(&ub_vs, ODF_NAME_CIS_INDEX, &(g_cis_info->ub.index)); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 192 if (err) c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 193 pr_warn("ub struct not get [index], use default value\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 194 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 195 err = odf_get_u32_from_struct(&ub_vs, ODF_NAME_CIS_FORWARDER_ID, 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 196 &(g_cis_info->ub.forwarder_id)); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 197 if (err) c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 198 pr_warn("ub struct not get forwarder, use default value\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 199 } else c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 200 pr_warn("not found ub struct in cis info\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 201 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 202 if (sub_table) 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 203 memunmap(sub_table); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 204 c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 205 pr_info("get cis table from odf success\n"); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 206 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 207 return 0; c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 208 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 209 fail: c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 210 free_cis_info(); c477b8f076e2b3 drivers/firmware/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-11-04 211 free_sub_table: 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 212 if (sub_table) 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 213 memunmap(sub_table); 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 214 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 215 return err; 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 216 } 24fa96b6e010d0 drivers/ubios_uvb/odf/odf_trans.c Anonymous_Z 2025-10-31 217 :::::: The code at line 119 was first introduced by commit :::::: 24fa96b6e010d05e59d99562a415b1a64544e292 ubios_uvb: support UBIOS object description specification parse :::::: TO: Anonymous_Z <zhangrui182(a)huawei.com> :::::: CC: t30009442 <tangce1(a)huawei.com> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3534/3534] kernel/cpu.c:2684: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
by kernel test robot 12 Dec '25

12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: b36171d783908f2ef26ccfcd757d4954a69955ab [3534/3534] cpu/SMT: Enable SMT only if a core is online config: x86_64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251211/202512112250.VVvi0O0a-lkp@…) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251211/202512112250.VVvi0O0a-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512112250.VVvi0O0a-lkp@intel.com/ All warnings (new ones prefixed by >>): >> kernel/cpu.c:2684: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst * Check if the core a CPU belongs to is online vim +2684 kernel/cpu.c 2682 2683 /** > 2684 * Check if the core a CPU belongs to is online 2685 */ 2686 #if !defined(topology_is_core_online) 2687 static inline bool topology_is_core_online(unsigned int cpu) 2688 { 2689 return true; 2690 } 2691 #endif 2692 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3508/3508] htmldocs: ./include/drm/drm_fourcc.h:149: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_format_info'
by kernel test robot 12 Dec '25

12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: 2ca47cd62ebb51e337e558943c1d23e4a5f2fbcf [3508/3508] drm: drm_fourcc.h: Add kabi_reserve reproduce: (https://download.01.org/0day-ci/archive/20251211/202512112225.hE3xUWyq-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512112225.hE3xUWyq-lkp@intel.com/ All warnings (new ones prefixed by >>): ./include/drm/drm_client.h:163: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_client_buffer' ./include/drm/drm_atomic.h:246: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_private_state_funcs' ./include/drm/drm_atomic.h:347: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_private_state' ./include/drm/drm_crtc.h:392: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_crtc_state' ./include/drm/drm_crtc.h:1185: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_crtc' >> ./include/drm/drm_fourcc.h:149: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_format_info' ./include/drm/drm_connector.h:328: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_hdmi_info' ./include/drm/drm_connector.h:531: warning: Enum value 'DRM_MODE_COLORIMETRY_COUNT' not described in enum 'drm_colorspace' ./include/drm/drm_connector.h:826: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_display_info' ./include/drm/drm_connector.h:888: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_tv_connector_state' ./include/drm/drm_connector.h:1350: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_connector_funcs' vim +149 ./include/drm/drm_fourcc.h 6a0f9ebfc5e753 Ville Syrjälä 2017-03-21 59 84770cc24f3a51 Laurent Pinchart 2016-10-18 60 /** 84770cc24f3a51 Laurent Pinchart 2016-10-18 61 * struct drm_format_info - information about a DRM format 84770cc24f3a51 Laurent Pinchart 2016-10-18 62 */ 84770cc24f3a51 Laurent Pinchart 2016-10-18 63 struct drm_format_info { 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 64 /** @format: 4CC format identifier (DRM_FORMAT_*) */ 84770cc24f3a51 Laurent Pinchart 2016-10-18 65 u32 format; 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 66 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 67 /** 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 68 * @depth: 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 69 * 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 70 * Color depth (number of bits per pixel excluding padding bits), 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 71 * valid for a subset of RGB formats only. This is a legacy field, do 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 72 * not use in new code and set to 0 for new formats. 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 73 */ 84770cc24f3a51 Laurent Pinchart 2016-10-18 74 u8 depth; 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 75 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 76 /** @num_planes: Number of color planes (1 to 3) */ 84770cc24f3a51 Laurent Pinchart 2016-10-18 77 u8 num_planes; 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 78 042bf753842ddb Alexandru Gheorghe 2018-11-01 79 union { 042bf753842ddb Alexandru Gheorghe 2018-11-01 80 /** 042bf753842ddb Alexandru Gheorghe 2018-11-01 81 * @cpp: 042bf753842ddb Alexandru Gheorghe 2018-11-01 82 * 042bf753842ddb Alexandru Gheorghe 2018-11-01 83 * Number of bytes per pixel (per plane), this is aliased with 042bf753842ddb Alexandru Gheorghe 2018-11-01 84 * @char_per_block. It is deprecated in favour of using the 042bf753842ddb Alexandru Gheorghe 2018-11-01 85 * triplet @char_per_block, @block_w, @block_h for better 042bf753842ddb Alexandru Gheorghe 2018-11-01 86 * describing the pixel format. 042bf753842ddb Alexandru Gheorghe 2018-11-01 87 */ 279cc2e9543eb3 Thomas Zimmermann 2021-07-30 88 u8 cpp[DRM_FORMAT_MAX_PLANES]; 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 89 042bf753842ddb Alexandru Gheorghe 2018-11-01 90 /** 042bf753842ddb Alexandru Gheorghe 2018-11-01 91 * @char_per_block: 042bf753842ddb Alexandru Gheorghe 2018-11-01 92 * 042bf753842ddb Alexandru Gheorghe 2018-11-01 93 * Number of bytes per block (per plane), where blocks are 042bf753842ddb Alexandru Gheorghe 2018-11-01 94 * defined as a rectangle of pixels which are stored next to 042bf753842ddb Alexandru Gheorghe 2018-11-01 95 * each other in a byte aligned memory region. Together with 042bf753842ddb Alexandru Gheorghe 2018-11-01 96 * @block_w and @block_h this is used to properly describe tiles 042bf753842ddb Alexandru Gheorghe 2018-11-01 97 * in tiled formats or to describe groups of pixels in packed 042bf753842ddb Alexandru Gheorghe 2018-11-01 98 * formats for which the memory needed for a single pixel is not 042bf753842ddb Alexandru Gheorghe 2018-11-01 99 * byte aligned. 042bf753842ddb Alexandru Gheorghe 2018-11-01 100 * 042bf753842ddb Alexandru Gheorghe 2018-11-01 101 * @cpp has been kept for historical reasons because there are 042bf753842ddb Alexandru Gheorghe 2018-11-01 102 * a lot of places in drivers where it's used. In drm core for 042bf753842ddb Alexandru Gheorghe 2018-11-01 103 * generic code paths the preferred way is to use 042bf753842ddb Alexandru Gheorghe 2018-11-01 104 * @char_per_block, drm_format_info_block_width() and 042bf753842ddb Alexandru Gheorghe 2018-11-01 105 * drm_format_info_block_height() which allows handling both 042bf753842ddb Alexandru Gheorghe 2018-11-01 106 * block and non-block formats in the same way. 042bf753842ddb Alexandru Gheorghe 2018-11-01 107 * 042bf753842ddb Alexandru Gheorghe 2018-11-01 108 * For formats that are intended to be used only with non-linear 042bf753842ddb Alexandru Gheorghe 2018-11-01 109 * modifiers both @cpp and @char_per_block must be 0 in the 042bf753842ddb Alexandru Gheorghe 2018-11-01 110 * generic format table. Drivers could supply accurate 042bf753842ddb Alexandru Gheorghe 2018-11-01 111 * information from their drm_mode_config.get_format_info hook 042bf753842ddb Alexandru Gheorghe 2018-11-01 112 * if they want the core to be validating the pitch. 042bf753842ddb Alexandru Gheorghe 2018-11-01 113 */ 279cc2e9543eb3 Thomas Zimmermann 2021-07-30 114 u8 char_per_block[DRM_FORMAT_MAX_PLANES]; 042bf753842ddb Alexandru Gheorghe 2018-11-01 115 }; 042bf753842ddb Alexandru Gheorghe 2018-11-01 116 042bf753842ddb Alexandru Gheorghe 2018-11-01 117 /** 042bf753842ddb Alexandru Gheorghe 2018-11-01 118 * @block_w: 042bf753842ddb Alexandru Gheorghe 2018-11-01 119 * 042bf753842ddb Alexandru Gheorghe 2018-11-01 120 * Block width in pixels, this is intended to be accessed through 042bf753842ddb Alexandru Gheorghe 2018-11-01 121 * drm_format_info_block_width() 042bf753842ddb Alexandru Gheorghe 2018-11-01 122 */ 279cc2e9543eb3 Thomas Zimmermann 2021-07-30 123 u8 block_w[DRM_FORMAT_MAX_PLANES]; 042bf753842ddb Alexandru Gheorghe 2018-11-01 124 042bf753842ddb Alexandru Gheorghe 2018-11-01 125 /** 042bf753842ddb Alexandru Gheorghe 2018-11-01 126 * @block_h: 042bf753842ddb Alexandru Gheorghe 2018-11-01 127 * 042bf753842ddb Alexandru Gheorghe 2018-11-01 128 * Block height in pixels, this is intended to be accessed through 042bf753842ddb Alexandru Gheorghe 2018-11-01 129 * drm_format_info_block_height() 042bf753842ddb Alexandru Gheorghe 2018-11-01 130 */ 279cc2e9543eb3 Thomas Zimmermann 2021-07-30 131 u8 block_h[DRM_FORMAT_MAX_PLANES]; 042bf753842ddb Alexandru Gheorghe 2018-11-01 132 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 133 /** @hsub: Horizontal chroma subsampling factor */ 84770cc24f3a51 Laurent Pinchart 2016-10-18 134 u8 hsub; 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 135 /** @vsub: Vertical chroma subsampling factor */ 84770cc24f3a51 Laurent Pinchart 2016-10-18 136 u8 vsub; 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 137 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 138 /** @has_alpha: Does the format embeds an alpha component? */ 4cc4e1b40f3ff5 Maxime Ripard 2017-12-22 139 bool has_alpha; 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 140 9c71a6686bfa4b Alexandru Gheorghe 2018-10-19 141 /** @is_yuv: Is it a YUV format? */ ce2d54619a1078 Ayan Kumar Halder 2018-07-17 142 bool is_yuv; dc1dc76bd9a48c Geert Uytterhoeven 2022-07-08 143 dc1dc76bd9a48c Geert Uytterhoeven 2022-07-08 144 /** @is_color_indexed: Is it a color-indexed format? */ dc1dc76bd9a48c Geert Uytterhoeven 2022-07-08 145 bool is_color_indexed; 2ca47cd62ebb51 Lin Yujun 2024-02-04 146 2ca47cd62ebb51 Lin Yujun 2024-02-04 147 KABI_RESERVE(1) 2ca47cd62ebb51 Lin Yujun 2024-02-04 148 KABI_RESERVE(2) 84770cc24f3a51 Laurent Pinchart 2016-10-18 @149 }; 84770cc24f3a51 Laurent Pinchart 2016-10-18 150 :::::: The code at line 149 was first introduced by commit :::::: 84770cc24f3a51c05055665feeac1dcf22119d69 drm: Centralize format information :::::: TO: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com> :::::: CC: Archit Taneja <architt(a)codeaurora.org> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3534/3534] htmldocs: Documentation/translations/zh_TW/dev-tools/index.rst:21: WARNING: toctree contains reference to nonexisting document 'translations/zh_TW/dev-tools/sparse' [toc.not_readable]
by kernel test robot 12 Dec '25

12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: b5ddf23d827cd42071866cc3bf265044c87e4ca9 [3534/3534] docs: kernel_feat.py: fix build error for missing files reproduce: (https://download.01.org/0day-ci/archive/20251211/202512112120.v8ybUBJh-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512112120.v8ybUBJh-lkp@intel.com/ All warnings (new ones prefixed by >>): KASLR for Freescale BookE32 ------------------------- [docutils] WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -sphinx-version 8.2.3 ./include/linux/fprobe.h' failed with return code 1 WARNING: kernel-doc './scripts/kernel-doc -rst -enable-lineno -sphinx-version 8.2.3 -internal ./include/linux/mutex.h' failed with return code 2 >> Documentation/translations/zh_TW/dev-tools/index.rst:21: WARNING: toctree contains reference to nonexisting document 'translations/zh_TW/dev-tools/sparse' [toc.not_readable] vim +21 Documentation/translations/zh_TW/dev-tools/index.rst a149733d00db3a Min-Hua Chen 2024-03-20 18 a149733d00db3a Min-Hua Chen 2024-03-20 19 目錄 a149733d00db3a Min-Hua Chen 2024-03-20 20 a149733d00db3a Min-Hua Chen 2024-03-20 @21 .. toctree:: :::::: The code at line 21 was first introduced by commit :::::: a149733d00db3a31a18e7818c361617daecdfa1f docs: sparse: add sparse.rst to toctree :::::: TO: Min-Hua Chen <minhuadotchen(a)gmail.com> :::::: CC: Ma Wupeng <mawupeng1(a)huawei.com> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3534/3534] kernel/locking/mutex.c:623:6: warning: variable 'ifs_clock' is used uninitialized whenever 'if' condition is true
by kernel test robot 12 Dec '25

12 Dec '25
Hi Pu, FYI, the error/warning still remains. tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: a1ad9b2ed459a3e3a4a2de50e03f53036fc7ec96 [3534/3534] interference: Add mutex interference track support config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251211/202512112149.942egSDc-lkp@…) compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 4125e73cdc6188cca4c1c72b72e2b2d85c157483) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251211/202512112149.942egSDc-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512112149.942egSDc-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from <built-in>:3: In file included from ././include/linux/compiler_types.h:150: ./include/linux/compiler-clang.h:33:9: warning: '__SANITIZE_ADDRESS__' macro redefined [-Wmacro-redefined] 33 | #define __SANITIZE_ADDRESS__ | ^ <built-in>:367:9: note: previous definition is here 367 | #define __SANITIZE_ADDRESS__ 1 | ^ >> kernel/locking/mutex.c:623:6: warning: variable 'ifs_clock' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] 623 | if (__mutex_trylock(lock)) { | ^~~~~~~~~~~~~~~~~~~~~ kernel/locking/mutex.c:725:24: note: uninitialized use occurs here 725 | cgroup_ifs_leave_lock(ifs_clock, IFS_MUTEX); | ^~~~~~~~~ kernel/locking/mutex.c:623:2: note: remove the 'if' if its condition is always false 623 | if (__mutex_trylock(lock)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | if (ww_ctx) | ~~~~~~~~~~~ 625 | __ww_mutex_check_waiters(lock, ww_ctx); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 626 | 627 | goto skip_wait; | ~~~~~~~~~~~~~~~ 628 | } | ~ kernel/locking/mutex.c:576:15: note: initialize the variable 'ifs_clock' to silence this warning 576 | u64 ifs_clock; | ^ | = 0 2 warnings generated. vim +623 kernel/locking/mutex.c 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 565 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 566 /* 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 567 * Lock a mutex (possibly interruptible), slowpath: 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 568 */ 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 569 static __always_inline int __sched 2f064a59a11ff9 kernel/locking/mutex.c Peter Zijlstra 2021-06-11 570 __mutex_lock_common(struct mutex *lock, unsigned int state, unsigned int subclass, 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 571 struct lockdep_map *nest_lock, unsigned long ip, b0267507dfd018 kernel/mutex.c Tetsuo Handa 2013-10-17 572 struct ww_acquire_ctx *ww_ctx, const bool use_ww_ctx) 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 573 { 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 574 struct mutex_waiter waiter; a40ca56577f628 kernel/locking/mutex.c Waiman Long 2016-08-26 575 struct ww_mutex *ww; a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui 2025-07-16 576 u64 ifs_clock; 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 577 int ret; 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 578 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 579 if (!use_ww_ctx) 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 580 ww_ctx = NULL; 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 581 427b18207a87f6 kernel/locking/mutex.c Peter Zijlstra 2016-12-23 582 might_sleep(); ea9e0fb8fe1bdf kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 583 e6b4457b05f36b kernel/locking/mutex.c Peter Zijlstra 2021-06-30 584 MUTEX_WARN_ON(lock->magic != lock); 6c11c6e3d5e9e5 kernel/locking/mutex.c Sebastian Andrzej Siewior 2019-07-03 585 a40ca56577f628 kernel/locking/mutex.c Waiman Long 2016-08-26 586 ww = container_of(lock, struct ww_mutex, base); 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 587 if (ww_ctx) { 0422e83d84ae24 kernel/locking/mutex.c Chris Wilson 2016-05-26 588 if (unlikely(ww_ctx == READ_ONCE(ww->ctx))) 0422e83d84ae24 kernel/locking/mutex.c Chris Wilson 2016-05-26 589 return -EALREADY; 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 590 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 591 /* 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 592 * Reset the wounded flag after a kill. No other process can 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 593 * race and wound us here since they can't have a valid owner 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 594 * pointer if we don't have any locks held. 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 595 */ 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 596 if (ww_ctx->acquired == 0) 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 597 ww_ctx->wounded = 0; cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra 2021-08-15 598 cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra 2021-08-15 599 #ifdef CONFIG_DEBUG_LOCK_ALLOC cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra 2021-08-15 600 nest_lock = &ww_ctx->dep_map; cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra 2021-08-15 601 #endif 0422e83d84ae24 kernel/locking/mutex.c Chris Wilson 2016-05-26 602 } 0422e83d84ae24 kernel/locking/mutex.c Chris Wilson 2016-05-26 603 41719b03091911 kernel/mutex.c Peter Zijlstra 2009-01-14 604 preempt_disable(); e4c70a6629f9c7 kernel/mutex.c Peter Zijlstra 2011-05-24 605 mutex_acquire_nest(&lock->dep_map, subclass, 0, nest_lock, ip); c02260277e4720 kernel/mutex.c Frederic Weisbecker 2009-12-02 606 dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 607 trace_contention_begin(lock, LCB_F_MUTEX | LCB_F_SPIN); e274795ea7b7ca kernel/locking/mutex.c Peter Zijlstra 2017-01-11 608 if (__mutex_trylock(lock) || 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 609 mutex_optimistic_spin(lock, ww_ctx, NULL)) { 76916515d9d84e kernel/locking/mutex.c Davidlohr Bueso 2014-07-30 610 /* got the lock, yay! */ 3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra 2016-08-23 611 lock_acquired(&lock->dep_map, ip); 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 612 if (ww_ctx) 3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra 2016-08-23 613 ww_mutex_set_context_fastpath(ww, ww_ctx); dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 614 trace_contention_end(lock, 0); ac6e60ee405aa3 kernel/mutex.c Chris Mason 2009-01-14 615 preempt_enable(); ac6e60ee405aa3 kernel/mutex.c Chris Mason 2009-01-14 616 return 0; ac6e60ee405aa3 kernel/mutex.c Chris Mason 2009-01-14 617 } ac6e60ee405aa3 kernel/mutex.c Chris Mason 2009-01-14 618 ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner 2021-08-15 619 raw_spin_lock(&lock->wait_lock); 1e820c9608eace kernel/locking/mutex.c Jason Low 2014-06-11 620 /* 3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra 2016-08-23 621 * After waiting to acquire the wait_lock, try again. 1e820c9608eace kernel/locking/mutex.c Jason Low 2014-06-11 622 */ 659cf9f5824a12 kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 @623 if (__mutex_trylock(lock)) { 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 624 if (ww_ctx) 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 625 __ww_mutex_check_waiters(lock, ww_ctx); 659cf9f5824a12 kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 626 ec83f425dbca47 kernel/mutex.c Davidlohr Bueso 2013-06-28 627 goto skip_wait; 659cf9f5824a12 kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 628 } ec83f425dbca47 kernel/mutex.c Davidlohr Bueso 2013-06-28 629 9a11b49a805665 kernel/mutex.c Ingo Molnar 2006-07-03 630 debug_mutex_lock_common(lock, &waiter); c0afb0ffc06e6b kernel/locking/mutex.c Peter Zijlstra 2021-08-15 631 waiter.task = current; b857174e68e26f kernel/locking/mutex.c Sebastian Andrzej Siewior 2021-08-19 632 if (use_ww_ctx) c0afb0ffc06e6b kernel/locking/mutex.c Peter Zijlstra 2021-08-15 633 waiter.ww_ctx = ww_ctx; 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 634 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 635 lock_contended(&lock->dep_map, ip); 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 636 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 637 if (!use_ww_ctx) { 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 638 /* add waiting tasks to the end of the waitqueue (FIFO): */ 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 639 __mutex_add_waiter(lock, &waiter, &lock->wait_list); 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 640 } else { 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 641 /* 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 642 * Add in stamp order, waking up waiters that must kill 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 643 * themselves. 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 644 */ 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 645 ret = __ww_mutex_add_waiter(&waiter, lock, ww_ctx); 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 646 if (ret) 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 647 goto err_early_kill; 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 648 } 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 649 642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso 2017-01-03 650 set_current_state(state); dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 651 trace_contention_begin(lock, LCB_F_MUTEX); a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui 2025-07-16 652 cgroup_ifs_enter_lock(&ifs_clock); 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 653 for (;;) { 048661a1f963e9 kernel/locking/mutex.c Peter Zijlstra 2021-06-30 654 bool first; 048661a1f963e9 kernel/locking/mutex.c Peter Zijlstra 2021-06-30 655 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 656 /* 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 657 * Once we hold wait_lock, we're serialized against 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 658 * mutex_unlock() handing the lock off to us, do a trylock 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 659 * before testing the error conditions to make sure we pick up 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 660 * the handoff. 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 661 */ e274795ea7b7ca kernel/locking/mutex.c Peter Zijlstra 2017-01-11 662 if (__mutex_trylock(lock)) 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 663 goto acquired; 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 664 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 665 /* 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 666 * Check for signals and kill conditions while holding 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 667 * wait_lock. This ensures the lock cancellation is ordered 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 668 * against mutex_unlock() and wake-ups do not go missing. 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 669 */ 3bb5f4ac55dd91 kernel/locking/mutex.c Davidlohr Bueso 2019-01-03 670 if (signal_pending_state(state, current)) { 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 671 ret = -EINTR; 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 672 goto err; 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 673 } 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 674 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 675 if (ww_ctx) { 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 676 ret = __ww_mutex_check_kill(lock, &waiter, ww_ctx); 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 677 if (ret) 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 678 goto err; 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 679 } 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 680 ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner 2021-08-15 681 raw_spin_unlock(&lock->wait_lock); bd2f55361f1834 kernel/mutex.c Thomas Gleixner 2011-03-21 682 schedule_preempt_disabled(); 9d659ae14b545c kernel/locking/mutex.c Peter Zijlstra 2016-08-23 683 6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle 2016-12-21 684 first = __mutex_waiter_is_first(lock, &waiter); 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 685 642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso 2017-01-03 686 set_current_state(state); 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 687 /* 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 688 * Here we order against unlock; we must either see it change 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 689 * state back to RUNNING and fall through the next schedule(), 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 690 * or we must see its unlock and acquire. 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 691 */ dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 692 if (__mutex_trylock_or_handoff(lock, first)) dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 693 break; dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 694 dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 695 if (first) { dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 696 trace_contention_begin(lock, LCB_F_MUTEX | LCB_F_SPIN); dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 697 if (mutex_optimistic_spin(lock, ww_ctx, &waiter)) 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 698 break; dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 699 trace_contention_begin(lock, LCB_F_MUTEX); dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 700 } 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 701 ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner 2021-08-15 702 raw_spin_lock(&lock->wait_lock); 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 703 } ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner 2021-08-15 704 raw_spin_lock(&lock->wait_lock); 5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra 2016-09-02 705 acquired: 642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso 2017-01-03 706 __set_current_state(TASK_RUNNING); 51587bcf31d070 kernel/locking/mutex.c Davidlohr Bueso 2015-01-19 707 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 708 if (ww_ctx) { 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 709 /* 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 710 * Wound-Wait; we stole the lock (!first_waiter), check the 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 711 * waiters as anyone might want to wound us. 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 712 */ 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 713 if (!ww_ctx->is_wait_die && 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 714 !__mutex_waiter_is_first(lock, &waiter)) 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 715 __ww_mutex_check_waiters(lock, ww_ctx); 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 716 } 08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom 2018-06-15 717 3a010c493271f0 kernel/locking/mutex.c Zqiang 2021-05-17 718 __mutex_remove_waiter(lock, &waiter); 3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra 2016-08-23 719 ec83f425dbca47 kernel/mutex.c Davidlohr Bueso 2013-06-28 720 debug_mutex_free_waiter(&waiter); 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 721 ec83f425dbca47 kernel/mutex.c Davidlohr Bueso 2013-06-28 722 skip_wait: ec83f425dbca47 kernel/mutex.c Davidlohr Bueso 2013-06-28 723 /* got the lock - cleanup and rejoice! */ c7e78cff6b7518 kernel/mutex.c Peter Zijlstra 2008-10-16 724 lock_acquired(&lock->dep_map, ip); a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui 2025-07-16 725 cgroup_ifs_leave_lock(ifs_clock, IFS_MUTEX); ee042be16cb455 kernel/locking/mutex.c Namhyung Kim 2022-03-22 726 trace_contention_end(lock, 0); 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 727 5de2055d31ea88 kernel/locking/mutex.c Waiman Long 2021-03-16 728 if (ww_ctx) 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 729 ww_mutex_lock_acquired(ww, ww_ctx); 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 730 ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner 2021-08-15 731 raw_spin_unlock(&lock->wait_lock); 41719b03091911 kernel/mutex.c Peter Zijlstra 2009-01-14 732 preempt_enable(); 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 733 return 0; 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 734 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 735 err: 642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso 2017-01-03 736 __set_current_state(TASK_RUNNING); 3a010c493271f0 kernel/locking/mutex.c Zqiang 2021-05-17 737 __mutex_remove_waiter(lock, &waiter); 55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra 2018-06-15 738 err_early_kill: a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui 2025-07-16 739 cgroup_ifs_leave_lock(ifs_clock, IFS_MUTEX); dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra 2022-03-30 740 trace_contention_end(lock, ret); ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner 2021-08-15 741 raw_spin_unlock(&lock->wait_lock); 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 742 debug_mutex_free_waiter(&waiter); 5facae4f3549b5 kernel/locking/mutex.c Qian Cai 2019-09-19 743 mutex_release(&lock->dep_map, ip); 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 744 preempt_enable(); 040a0a37100563 kernel/mutex.c Maarten Lankhorst 2013-06-24 745 return ret; 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 746 } 6053ee3b32e343 kernel/mutex.c Ingo Molnar 2006-01-09 747 :::::: The code at line 623 was first introduced by commit :::::: 659cf9f5824a12e6b50785e4e9cf1adf8a3adbd0 locking/ww_mutex: Optimize ww-mutexes by waking at most one waiter for backoff when acquiring the lock :::::: TO: Nicolai Hähnle <Nicolai.Haehnle(a)amd.com> :::::: CC: Ingo Molnar <mingo(a)kernel.org> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3536/3536] net/ipv4/tcp_comp.c:740:6: warning: no previous prototype for function 'comp_stream_read'
by kernel test robot 12 Dec '25

12 Dec '25
Hi Lu, FYI, the error/warning still remains. tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: c31dcf6c5ab41f07da38d3f270987807735ec93e [3536/3536] tcp_comp: implement tcp compression config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20251212/202512120305.ngE1OnFo-lkp@…) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251212/202512120305.ngE1OnFo-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512120305.ngE1OnFo-lkp@intel.com/ All warnings (new ones prefixed by >>): In file included from net/ipv4/tcp_comp.c:8: In file included from include/linux/skmsg.h:7: In file included from include/linux/bpf.h:21: In file included from include/linux/kallsyms.h:13: In file included from include/linux/mm.h:2181: include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 509 | item]; | ~~~~ include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 516 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 528 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion] 536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~ ^ 537 | NR_VM_NUMA_EVENT_ITEMS + | ~~~~~~~~~~~~~~~~~~~~~~ >> net/ipv4/tcp_comp.c:740:6: warning: no previous prototype for function 'comp_stream_read' [-Wmissing-prototypes] 740 | bool comp_stream_read(struct sock *sk) | ^ net/ipv4/tcp_comp.c:740:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 740 | bool comp_stream_read(struct sock *sk) | ^ | static >> net/ipv4/tcp_comp.c:779:6: warning: no previous prototype for function 'comp_setup_strp' [-Wmissing-prototypes] 779 | void comp_setup_strp(struct sock *sk, struct tcp_comp_context *ctx) | ^ net/ipv4/tcp_comp.c:779:1: note: declare 'static' if the function is not intended to be used outside of this translation unit 779 | void comp_setup_strp(struct sock *sk, struct tcp_comp_context *ctx) | ^ | static 7 warnings generated. vim +/comp_stream_read +740 net/ipv4/tcp_comp.c 739 > 740 bool comp_stream_read(struct sock *sk) 741 { 742 struct tcp_comp_context *ctx = comp_get_ctx(sk); 743 744 if (!ctx) 745 return false; 746 747 if (ctx->rx.pkt || ctx->rx.dpkt) 748 return true; 749 750 return false; 751 } 752 753 static void comp_data_ready(struct sock *sk) 754 { 755 struct tcp_comp_context *ctx = comp_get_ctx(sk); 756 757 strp_data_ready(&ctx->rx.strp); 758 } 759 760 static void comp_queue(struct strparser *strp, struct sk_buff *skb) 761 { 762 struct tcp_comp_context *ctx = comp_get_ctx(strp->sk); 763 764 ctx->rx.pkt = skb; 765 strp_pause(strp); 766 ctx->rx.saved_data_ready(strp->sk); 767 } 768 769 static int comp_read_size(struct strparser *strp, struct sk_buff *skb) 770 { 771 struct strp_msg *rxm = strp_msg(skb); 772 773 if (rxm->offset > skb->len) 774 return 0; 775 776 return skb->len - rxm->offset; 777 } 778 > 779 void comp_setup_strp(struct sock *sk, struct tcp_comp_context *ctx) 780 { 781 struct strp_callbacks cb; 782 783 memset(&cb, 0, sizeof(cb)); 784 cb.rcv_msg = comp_queue; 785 cb.parse_msg = comp_read_size; 786 strp_init(&ctx->rx.strp, sk, &cb); 787 788 write_lock_bh(&sk->sk_callback_lock); 789 ctx->rx.saved_data_ready = sk->sk_data_ready; 790 sk->sk_data_ready = comp_data_ready; 791 write_unlock_bh(&sk->sk_callback_lock); 792 793 strp_check_rcv(&ctx->rx.strp); 794 } 795 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
[openeuler:OLK-6.6 3534/3534] arch/x86/entry/common.c:163: warning: Function parameter or member 'regs' not described in 'do_int80_emulation'
by kernel test robot 12 Dec '25

12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce commit: 93117cefb1a33b3c93d9450d966ce333f5e4a4a8 [3534/3534] x86/bhi: Add support for clearing branch history at syscall entry config: x86_64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251211/202512111900.HRlObqRh-lkp@…) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251211/202512111900.HRlObqRh-lkp@…) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp(a)intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512111900.HRlObqRh-lkp@intel.com/ All warnings (new ones prefixed by >>): >> arch/x86/entry/common.c:163: warning: Function parameter or member 'regs' not described in 'do_int80_emulation' vim +163 arch/x86/entry/common.c ae4c9ae1882092 Thomas Gleixner 2024-01-02 142 e0df47ab7f352c Thomas Gleixner 2024-01-02 143 /** 93117cefb1a33b Pawan Gupta 2024-05-07 144 * do_int80_emulation - 32-bit legacy syscall C entry from asm e0df47ab7f352c Thomas Gleixner 2024-01-02 145 * e0df47ab7f352c Thomas Gleixner 2024-01-02 146 * This entry point can be used by 32-bit and 64-bit programs to perform e0df47ab7f352c Thomas Gleixner 2024-01-02 147 * 32-bit system calls. Instances of INT $0x80 can be found inline in e0df47ab7f352c Thomas Gleixner 2024-01-02 148 * various programs and libraries. It is also used by the vDSO's e0df47ab7f352c Thomas Gleixner 2024-01-02 149 * __kernel_vsyscall fallback for hardware that doesn't support a faster e0df47ab7f352c Thomas Gleixner 2024-01-02 150 * entry method. Restarted 32-bit system calls also fall back to INT e0df47ab7f352c Thomas Gleixner 2024-01-02 151 * $0x80 regardless of what instruction was originally used to do the e0df47ab7f352c Thomas Gleixner 2024-01-02 152 * system call. e0df47ab7f352c Thomas Gleixner 2024-01-02 153 * e0df47ab7f352c Thomas Gleixner 2024-01-02 154 * This is considered a slow path. It is not used by most libc e0df47ab7f352c Thomas Gleixner 2024-01-02 155 * implementations on modern hardware except during process startup. e0df47ab7f352c Thomas Gleixner 2024-01-02 156 * e0df47ab7f352c Thomas Gleixner 2024-01-02 157 * The arguments for the INT $0x80 based syscall are on stack in the e0df47ab7f352c Thomas Gleixner 2024-01-02 158 * pt_regs structure: e0df47ab7f352c Thomas Gleixner 2024-01-02 159 * eax: system call number e0df47ab7f352c Thomas Gleixner 2024-01-02 160 * ebx, ecx, edx, esi, edi, ebp: arg1 - arg 6 e0df47ab7f352c Thomas Gleixner 2024-01-02 161 */ 93117cefb1a33b Pawan Gupta 2024-05-07 162 __visible noinstr void do_int80_emulation(struct pt_regs *regs) e0df47ab7f352c Thomas Gleixner 2024-01-02 @163 { e0df47ab7f352c Thomas Gleixner 2024-01-02 164 int nr; e0df47ab7f352c Thomas Gleixner 2024-01-02 165 ae4c9ae1882092 Thomas Gleixner 2024-01-02 166 /* Kernel does not use INT $0x80! */ ae4c9ae1882092 Thomas Gleixner 2024-01-02 167 if (unlikely(!user_mode(regs))) { ae4c9ae1882092 Thomas Gleixner 2024-01-02 168 irqentry_enter(regs); ae4c9ae1882092 Thomas Gleixner 2024-01-02 169 instrumentation_begin(); ae4c9ae1882092 Thomas Gleixner 2024-01-02 170 panic("Unexpected external interrupt 0x80\n"); ae4c9ae1882092 Thomas Gleixner 2024-01-02 171 } ae4c9ae1882092 Thomas Gleixner 2024-01-02 172 ae4c9ae1882092 Thomas Gleixner 2024-01-02 173 /* ae4c9ae1882092 Thomas Gleixner 2024-01-02 174 * Establish kernel context for instrumentation, including for ae4c9ae1882092 Thomas Gleixner 2024-01-02 175 * int80_is_external() below which calls into the APIC driver. ae4c9ae1882092 Thomas Gleixner 2024-01-02 176 * Identical for soft and external interrupts. ae4c9ae1882092 Thomas Gleixner 2024-01-02 177 */ e0df47ab7f352c Thomas Gleixner 2024-01-02 178 enter_from_user_mode(regs); e0df47ab7f352c Thomas Gleixner 2024-01-02 179 e0df47ab7f352c Thomas Gleixner 2024-01-02 180 instrumentation_begin(); e0df47ab7f352c Thomas Gleixner 2024-01-02 181 add_random_kstack_offset(); e0df47ab7f352c Thomas Gleixner 2024-01-02 182 ae4c9ae1882092 Thomas Gleixner 2024-01-02 183 /* Validate that this is a soft interrupt to the extent possible */ ae4c9ae1882092 Thomas Gleixner 2024-01-02 184 if (unlikely(int80_is_external())) ae4c9ae1882092 Thomas Gleixner 2024-01-02 185 panic("Unexpected external interrupt 0x80\n"); ae4c9ae1882092 Thomas Gleixner 2024-01-02 186 e0df47ab7f352c Thomas Gleixner 2024-01-02 187 /* e0df47ab7f352c Thomas Gleixner 2024-01-02 188 * The low level idtentry code pushed -1 into regs::orig_ax e0df47ab7f352c Thomas Gleixner 2024-01-02 189 * and regs::ax contains the syscall number. e0df47ab7f352c Thomas Gleixner 2024-01-02 190 * e0df47ab7f352c Thomas Gleixner 2024-01-02 191 * User tracing code (ptrace or signal handlers) might assume e0df47ab7f352c Thomas Gleixner 2024-01-02 192 * that the regs::orig_ax contains a 32-bit number on invoking e0df47ab7f352c Thomas Gleixner 2024-01-02 193 * a 32-bit syscall. e0df47ab7f352c Thomas Gleixner 2024-01-02 194 * e0df47ab7f352c Thomas Gleixner 2024-01-02 195 * Establish the syscall convention by saving the 32bit truncated e0df47ab7f352c Thomas Gleixner 2024-01-02 196 * syscall number in regs::orig_ax and by invalidating regs::ax. e0df47ab7f352c Thomas Gleixner 2024-01-02 197 */ e0df47ab7f352c Thomas Gleixner 2024-01-02 198 regs->orig_ax = regs->ax & GENMASK(31, 0); e0df47ab7f352c Thomas Gleixner 2024-01-02 199 regs->ax = -ENOSYS; e0df47ab7f352c Thomas Gleixner 2024-01-02 200 e0df47ab7f352c Thomas Gleixner 2024-01-02 201 nr = syscall_32_enter(regs); e0df47ab7f352c Thomas Gleixner 2024-01-02 202 e0df47ab7f352c Thomas Gleixner 2024-01-02 203 local_irq_enable(); e0df47ab7f352c Thomas Gleixner 2024-01-02 204 nr = syscall_enter_from_user_mode_work(regs, nr); e0df47ab7f352c Thomas Gleixner 2024-01-02 205 do_syscall_32_irqs_on(regs, nr); e0df47ab7f352c Thomas Gleixner 2024-01-02 206 e0df47ab7f352c Thomas Gleixner 2024-01-02 207 instrumentation_end(); e0df47ab7f352c Thomas Gleixner 2024-01-02 208 syscall_exit_to_user_mode(regs); e0df47ab7f352c Thomas Gleixner 2024-01-02 209 } e0df47ab7f352c Thomas Gleixner 2024-01-02 210 #else /* CONFIG_IA32_EMULATION */ e0df47ab7f352c Thomas Gleixner 2024-01-02 211 :::::: The code at line 163 was first introduced by commit :::::: e0df47ab7f352c5f055d05102cc1dfcb43567ba8 x86/entry: Convert INT 0x80 emulation to IDTENTRY :::::: TO: Thomas Gleixner <tglx(a)linutronix.de> :::::: CC: Zheng Zengkai <zhengzengkai(a)huawei.com> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • ...
  • 2185
  • Older →

HyperKitty Powered by HyperKitty