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
- 44 participants
- 21876 discussions
[openeuler:OLK-6.6 3508/3508] htmldocs: ./include/drm/drm_gem.h:224: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_gem_object_funcs'
by kernel test robot 12 Dec '25
by kernel test robot 12 Dec '25
12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce
commit: 594c8ec1c427b74f7bba885787c6e41732e32dba [3508/3508] drm: drm_gem.h: Add kabi_reserve
reproduce: (https://download.01.org/0day-ci/archive/20251212/202512120202.QFuhMvmE-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/202512120202.QFuhMvmE-lkp@intel.com/
All warnings (new ones prefixed by >>):
./include/drm/drm_connector.h:1897: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_connector'
./include/drm/drm_fb_helper.h:107: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_fb_helper_funcs'
./include/drm/drm_fb_helper.h:217: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_fb_helper'
Error: Cannot open file ./include/linux/hdmi.h
Error: Cannot open file ./include/linux/hdmi.h
>> ./include/drm/drm_gem.h:224: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_gem_object_funcs'
>> ./include/drm/drm_gem.h:432: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_gem_object'
Error: Cannot open file ./include/linux/host1x.h
Error: Cannot open file ./include/linux/vga_switcheroo.h
Error: Cannot open file ./include/linux/vga_switcheroo.h
Error: Cannot open file ./include/linux/vga_switcheroo.h
Error: Cannot open file ./include/linux/vga_switcheroo.h
vim +224 ./include/drm/drm_gem.h
686b21b5f6ca2f Rob Clark 2023-05-24 67
b39b5394fabc79 Noralf Trønnes 2018-11-10 68 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 69 * struct drm_gem_object_funcs - GEM object functions
b39b5394fabc79 Noralf Trønnes 2018-11-10 70 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 71 struct drm_gem_object_funcs {
b39b5394fabc79 Noralf Trønnes 2018-11-10 72 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 73 * @free:
b39b5394fabc79 Noralf Trønnes 2018-11-10 74 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 75 * Deconstructor for drm_gem_objects.
b39b5394fabc79 Noralf Trønnes 2018-11-10 76 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 77 * This callback is mandatory.
b39b5394fabc79 Noralf Trønnes 2018-11-10 78 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 79 void (*free)(struct drm_gem_object *obj);
b39b5394fabc79 Noralf Trønnes 2018-11-10 80
b39b5394fabc79 Noralf Trønnes 2018-11-10 81 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 82 * @open:
b39b5394fabc79 Noralf Trønnes 2018-11-10 83 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 84 * Called upon GEM handle creation.
b39b5394fabc79 Noralf Trønnes 2018-11-10 85 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 86 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 87 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 88 int (*open)(struct drm_gem_object *obj, struct drm_file *file);
b39b5394fabc79 Noralf Trønnes 2018-11-10 89
b39b5394fabc79 Noralf Trønnes 2018-11-10 90 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 91 * @close:
b39b5394fabc79 Noralf Trønnes 2018-11-10 92 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 93 * Called upon GEM handle release.
b39b5394fabc79 Noralf Trønnes 2018-11-10 94 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 95 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 96 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 97 void (*close)(struct drm_gem_object *obj, struct drm_file *file);
b39b5394fabc79 Noralf Trønnes 2018-11-10 98
b39b5394fabc79 Noralf Trønnes 2018-11-10 99 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 100 * @print_info:
b39b5394fabc79 Noralf Trønnes 2018-11-10 101 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 102 * If driver subclasses struct &drm_gem_object, it can implement this
b39b5394fabc79 Noralf Trønnes 2018-11-10 103 * optional hook for printing additional driver specific info.
b39b5394fabc79 Noralf Trønnes 2018-11-10 104 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 105 * drm_printf_indent() should be used in the callback passing it the
b39b5394fabc79 Noralf Trønnes 2018-11-10 106 * indent argument.
b39b5394fabc79 Noralf Trønnes 2018-11-10 107 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 108 * This callback is called from drm_gem_print_info().
b39b5394fabc79 Noralf Trønnes 2018-11-10 109 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 110 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 111 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 112 void (*print_info)(struct drm_printer *p, unsigned int indent,
b39b5394fabc79 Noralf Trønnes 2018-11-10 113 const struct drm_gem_object *obj);
b39b5394fabc79 Noralf Trønnes 2018-11-10 114
b39b5394fabc79 Noralf Trønnes 2018-11-10 115 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 116 * @export:
b39b5394fabc79 Noralf Trønnes 2018-11-10 117 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 118 * Export backing buffer as a &dma_buf.
b39b5394fabc79 Noralf Trønnes 2018-11-10 119 * If this is not set drm_gem_prime_export() is used.
b39b5394fabc79 Noralf Trønnes 2018-11-10 120 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 121 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 122 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 123 struct dma_buf *(*export)(struct drm_gem_object *obj, int flags);
b39b5394fabc79 Noralf Trønnes 2018-11-10 124
b39b5394fabc79 Noralf Trønnes 2018-11-10 125 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 126 * @pin:
b39b5394fabc79 Noralf Trønnes 2018-11-10 127 *
805dc614d58a8f Daniel Vetter 2019-06-20 128 * Pin backing buffer in memory. Used by the drm_gem_map_attach() helper.
b39b5394fabc79 Noralf Trønnes 2018-11-10 129 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 130 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 131 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 132 int (*pin)(struct drm_gem_object *obj);
b39b5394fabc79 Noralf Trønnes 2018-11-10 133
b39b5394fabc79 Noralf Trønnes 2018-11-10 134 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 135 * @unpin:
b39b5394fabc79 Noralf Trønnes 2018-11-10 136 *
805dc614d58a8f Daniel Vetter 2019-06-20 137 * Unpin backing buffer. Used by the drm_gem_map_detach() helper.
b39b5394fabc79 Noralf Trønnes 2018-11-10 138 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 139 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 140 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 141 void (*unpin)(struct drm_gem_object *obj);
b39b5394fabc79 Noralf Trønnes 2018-11-10 142
b39b5394fabc79 Noralf Trønnes 2018-11-10 143 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 144 * @get_sg_table:
b39b5394fabc79 Noralf Trønnes 2018-11-10 145 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 146 * Returns a Scatter-Gather table representation of the buffer.
805dc614d58a8f Daniel Vetter 2019-06-20 147 * Used when exporting a buffer by the drm_gem_map_dma_buf() helper.
805dc614d58a8f Daniel Vetter 2019-06-20 148 * Releasing is done by calling dma_unmap_sg_attrs() and sg_free_table()
805dc614d58a8f Daniel Vetter 2019-06-20 149 * in drm_gem_unmap_buf(), therefore these helpers and this callback
805dc614d58a8f Daniel Vetter 2019-06-20 150 * here cannot be used for sg tables pointing at driver private memory
805dc614d58a8f Daniel Vetter 2019-06-20 151 * ranges.
b39b5394fabc79 Noralf Trønnes 2018-11-10 152 *
805dc614d58a8f Daniel Vetter 2019-06-20 153 * See also drm_prime_pages_to_sg().
b39b5394fabc79 Noralf Trønnes 2018-11-10 154 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 155 struct sg_table *(*get_sg_table)(struct drm_gem_object *obj);
b39b5394fabc79 Noralf Trønnes 2018-11-10 156
b39b5394fabc79 Noralf Trønnes 2018-11-10 157 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 158 * @vmap:
b39b5394fabc79 Noralf Trønnes 2018-11-10 159 *
805dc614d58a8f Daniel Vetter 2019-06-20 160 * Returns a virtual address for the buffer. Used by the
805dc614d58a8f Daniel Vetter 2019-06-20 161 * drm_gem_dmabuf_vmap() helper.
b39b5394fabc79 Noralf Trønnes 2018-11-10 162 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 163 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 164 */
7938f4218168ae Lucas De Marchi 2022-02-04 165 int (*vmap)(struct drm_gem_object *obj, struct iosys_map *map);
b39b5394fabc79 Noralf Trønnes 2018-11-10 166
b39b5394fabc79 Noralf Trønnes 2018-11-10 167 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 168 * @vunmap:
b39b5394fabc79 Noralf Trønnes 2018-11-10 169 *
f621f3bb33af0f Randy Dunlap 2020-07-14 170 * Releases the address previously returned by @vmap. Used by the
805dc614d58a8f Daniel Vetter 2019-06-20 171 * drm_gem_dmabuf_vunmap() helper.
b39b5394fabc79 Noralf Trønnes 2018-11-10 172 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 173 * This callback is optional.
b39b5394fabc79 Noralf Trønnes 2018-11-10 174 */
7938f4218168ae Lucas De Marchi 2022-02-04 175 void (*vunmap)(struct drm_gem_object *obj, struct iosys_map *map);
b39b5394fabc79 Noralf Trønnes 2018-11-10 176
c40069cb7bd649 Gerd Hoffmann 2019-10-16 177 /**
c40069cb7bd649 Gerd Hoffmann 2019-10-16 178 * @mmap:
c40069cb7bd649 Gerd Hoffmann 2019-10-16 179 *
c40069cb7bd649 Gerd Hoffmann 2019-10-16 180 * Handle mmap() of the gem object, setup vma accordingly.
c40069cb7bd649 Gerd Hoffmann 2019-10-16 181 *
c40069cb7bd649 Gerd Hoffmann 2019-10-16 182 * This callback is optional.
c40069cb7bd649 Gerd Hoffmann 2019-10-16 183 *
f621f3bb33af0f Randy Dunlap 2020-07-14 184 * The callback is used by both drm_gem_mmap_obj() and
c40069cb7bd649 Gerd Hoffmann 2019-10-16 185 * drm_gem_prime_mmap(). When @mmap is present @vm_ops is not
e5516553999f73 Gerd Hoffmann 2019-11-27 186 * used, the @mmap callback must set vma->vm_ops instead.
c40069cb7bd649 Gerd Hoffmann 2019-10-16 187 */
c40069cb7bd649 Gerd Hoffmann 2019-10-16 188 int (*mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma);
c40069cb7bd649 Gerd Hoffmann 2019-10-16 189
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 190 /**
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 191 * @evict:
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 192 *
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 193 * Evicts gem object out from memory. Used by the drm_gem_object_evict()
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 194 * helper. Returns 0 on success, -errno otherwise.
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 195 *
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 196 * This callback is optional.
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 197 */
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 198 int (*evict)(struct drm_gem_object *obj);
7eabaa892d9c57 Dmitry Osipenko 2022-11-16 199
686b21b5f6ca2f Rob Clark 2023-05-24 200 /**
686b21b5f6ca2f Rob Clark 2023-05-24 201 * @status:
686b21b5f6ca2f Rob Clark 2023-05-24 202 *
686b21b5f6ca2f Rob Clark 2023-05-24 203 * The optional status callback can return additional object state
686b21b5f6ca2f Rob Clark 2023-05-24 204 * which determines which stats the object is counted against. The
686b21b5f6ca2f Rob Clark 2023-05-24 205 * callback is called under table_lock. Racing against object status
686b21b5f6ca2f Rob Clark 2023-05-24 206 * change is "harmless", and the callback can expect to not race
686b21b5f6ca2f Rob Clark 2023-05-24 207 * against object destruction.
686b21b5f6ca2f Rob Clark 2023-05-24 208 *
686b21b5f6ca2f Rob Clark 2023-05-24 209 * Called by drm_show_memory_stats().
686b21b5f6ca2f Rob Clark 2023-05-24 210 */
686b21b5f6ca2f Rob Clark 2023-05-24 211 enum drm_gem_object_status (*status)(struct drm_gem_object *obj);
686b21b5f6ca2f Rob Clark 2023-05-24 212
b39b5394fabc79 Noralf Trønnes 2018-11-10 213 /**
b39b5394fabc79 Noralf Trønnes 2018-11-10 214 * @vm_ops:
b39b5394fabc79 Noralf Trønnes 2018-11-10 215 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 216 * Virtual memory operations used with mmap.
b39b5394fabc79 Noralf Trønnes 2018-11-10 217 *
b39b5394fabc79 Noralf Trønnes 2018-11-10 218 * This is optional but necessary for mmap support.
b39b5394fabc79 Noralf Trønnes 2018-11-10 219 */
b39b5394fabc79 Noralf Trønnes 2018-11-10 220 const struct vm_operations_struct *vm_ops;
594c8ec1c427b7 Lin Yujun 2024-02-04 221
594c8ec1c427b7 Lin Yujun 2024-02-04 222 KABI_RESERVE(1)
594c8ec1c427b7 Lin Yujun 2024-02-04 223 KABI_RESERVE(2)
b39b5394fabc79 Noralf Trønnes 2018-11-10 @224 };
b39b5394fabc79 Noralf Trønnes 2018-11-10 225
:::::: The code at line 224 was first introduced by commit
:::::: b39b5394fabc79acbaafb26b777fd348c868bf7e drm/gem: Add drm_gem_object_funcs
:::::: TO: Noralf Trønnes <noralf(a)tronnes.org>
:::::: CC: Noralf Trønnes <noralf(a)tronnes.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3534/3534] kernel/sched/debug.c:102:12: warning: no previous prototype for function 'is_prefer_numa'
by kernel test robot 12 Dec '25
by kernel test robot 12 Dec '25
12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce
commit: 0f22304e62d360fce47988586d599e33895ccb01 [3534/3534] sched: Support NUMA parallel scheduling for multiple processes
config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251212/202512120101.AycyCkRN-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/20251212/202512120101.AycyCkRN-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/202512120101.AycyCkRN-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
| ^
In file included from kernel/sched/build_utility.c:73:
>> kernel/sched/debug.c:102:12: warning: no previous prototype for function 'is_prefer_numa' [-Wmissing-prototypes]
102 | int __weak is_prefer_numa(void)
| ^
kernel/sched/debug.c:102:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
102 | int __weak is_prefer_numa(void)
| ^
| static
2 warnings generated.
vim +/is_prefer_numa +102 kernel/sched/debug.c
101
> 102 int __weak is_prefer_numa(void)
103 {
104 return 0;
105 }
106
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3534/3534] htmldocs: Documentation/networking/hinic3.rst:3: WARNING: Title overline too short.
by kernel test robot 12 Dec '25
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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
[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
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