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
- 41 participants
- 21841 discussions
[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
[openeuler:OLK-6.6 3536/3536] net/ipv4/tcp_comp.c:740:6: warning: no previous prototype for function 'comp_stream_read'
by kernel test robot 12 Dec '25
by kernel test robot 12 Dec '25
12 Dec '25
Hi Lu,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce
commit: c31dcf6c5ab41f07da38d3f270987807735ec93e [3536/3536] tcp_comp: implement tcp compression
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20251212/202512120305.ngE1OnFo-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251212/202512120305.ngE1OnFo-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512120305.ngE1OnFo-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from net/ipv4/tcp_comp.c:8:
In file included from include/linux/skmsg.h:7:
In file included from include/linux/bpf.h:21:
In file included from include/linux/kallsyms.h:13:
In file included from include/linux/mm.h:2181:
include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> net/ipv4/tcp_comp.c:740:6: warning: no previous prototype for function 'comp_stream_read' [-Wmissing-prototypes]
740 | bool comp_stream_read(struct sock *sk)
| ^
net/ipv4/tcp_comp.c:740:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
740 | bool comp_stream_read(struct sock *sk)
| ^
| static
>> net/ipv4/tcp_comp.c:779:6: warning: no previous prototype for function 'comp_setup_strp' [-Wmissing-prototypes]
779 | void comp_setup_strp(struct sock *sk, struct tcp_comp_context *ctx)
| ^
net/ipv4/tcp_comp.c:779:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
779 | void comp_setup_strp(struct sock *sk, struct tcp_comp_context *ctx)
| ^
| static
7 warnings generated.
vim +/comp_stream_read +740 net/ipv4/tcp_comp.c
739
> 740 bool comp_stream_read(struct sock *sk)
741 {
742 struct tcp_comp_context *ctx = comp_get_ctx(sk);
743
744 if (!ctx)
745 return false;
746
747 if (ctx->rx.pkt || ctx->rx.dpkt)
748 return true;
749
750 return false;
751 }
752
753 static void comp_data_ready(struct sock *sk)
754 {
755 struct tcp_comp_context *ctx = comp_get_ctx(sk);
756
757 strp_data_ready(&ctx->rx.strp);
758 }
759
760 static void comp_queue(struct strparser *strp, struct sk_buff *skb)
761 {
762 struct tcp_comp_context *ctx = comp_get_ctx(strp->sk);
763
764 ctx->rx.pkt = skb;
765 strp_pause(strp);
766 ctx->rx.saved_data_ready(strp->sk);
767 }
768
769 static int comp_read_size(struct strparser *strp, struct sk_buff *skb)
770 {
771 struct strp_msg *rxm = strp_msg(skb);
772
773 if (rxm->offset > skb->len)
774 return 0;
775
776 return skb->len - rxm->offset;
777 }
778
> 779 void comp_setup_strp(struct sock *sk, struct tcp_comp_context *ctx)
780 {
781 struct strp_callbacks cb;
782
783 memset(&cb, 0, sizeof(cb));
784 cb.rcv_msg = comp_queue;
785 cb.parse_msg = comp_read_size;
786 strp_init(&ctx->rx.strp, sk, &cb);
787
788 write_lock_bh(&sk->sk_callback_lock);
789 ctx->rx.saved_data_ready = sk->sk_data_ready;
790 sk->sk_data_ready = comp_data_ready;
791 write_unlock_bh(&sk->sk_callback_lock);
792
793 strp_check_rcv(&ctx->rx.strp);
794 }
795
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3534/3534] arch/x86/entry/common.c:163: warning: Function parameter or member 'regs' not described in 'do_int80_emulation'
by kernel test robot 12 Dec '25
by kernel test robot 12 Dec '25
12 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce
commit: 93117cefb1a33b3c93d9450d966ce333f5e4a4a8 [3534/3534] x86/bhi: Add support for clearing branch history at syscall entry
config: x86_64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251211/202512111900.HRlObqRh-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251211/202512111900.HRlObqRh-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512111900.HRlObqRh-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/x86/entry/common.c:163: warning: Function parameter or member 'regs' not described in 'do_int80_emulation'
vim +163 arch/x86/entry/common.c
ae4c9ae1882092 Thomas Gleixner 2024-01-02 142
e0df47ab7f352c Thomas Gleixner 2024-01-02 143 /**
93117cefb1a33b Pawan Gupta 2024-05-07 144 * do_int80_emulation - 32-bit legacy syscall C entry from asm
e0df47ab7f352c Thomas Gleixner 2024-01-02 145 *
e0df47ab7f352c Thomas Gleixner 2024-01-02 146 * This entry point can be used by 32-bit and 64-bit programs to perform
e0df47ab7f352c Thomas Gleixner 2024-01-02 147 * 32-bit system calls. Instances of INT $0x80 can be found inline in
e0df47ab7f352c Thomas Gleixner 2024-01-02 148 * various programs and libraries. It is also used by the vDSO's
e0df47ab7f352c Thomas Gleixner 2024-01-02 149 * __kernel_vsyscall fallback for hardware that doesn't support a faster
e0df47ab7f352c Thomas Gleixner 2024-01-02 150 * entry method. Restarted 32-bit system calls also fall back to INT
e0df47ab7f352c Thomas Gleixner 2024-01-02 151 * $0x80 regardless of what instruction was originally used to do the
e0df47ab7f352c Thomas Gleixner 2024-01-02 152 * system call.
e0df47ab7f352c Thomas Gleixner 2024-01-02 153 *
e0df47ab7f352c Thomas Gleixner 2024-01-02 154 * This is considered a slow path. It is not used by most libc
e0df47ab7f352c Thomas Gleixner 2024-01-02 155 * implementations on modern hardware except during process startup.
e0df47ab7f352c Thomas Gleixner 2024-01-02 156 *
e0df47ab7f352c Thomas Gleixner 2024-01-02 157 * The arguments for the INT $0x80 based syscall are on stack in the
e0df47ab7f352c Thomas Gleixner 2024-01-02 158 * pt_regs structure:
e0df47ab7f352c Thomas Gleixner 2024-01-02 159 * eax: system call number
e0df47ab7f352c Thomas Gleixner 2024-01-02 160 * ebx, ecx, edx, esi, edi, ebp: arg1 - arg 6
e0df47ab7f352c Thomas Gleixner 2024-01-02 161 */
93117cefb1a33b Pawan Gupta 2024-05-07 162 __visible noinstr void do_int80_emulation(struct pt_regs *regs)
e0df47ab7f352c Thomas Gleixner 2024-01-02 @163 {
e0df47ab7f352c Thomas Gleixner 2024-01-02 164 int nr;
e0df47ab7f352c Thomas Gleixner 2024-01-02 165
ae4c9ae1882092 Thomas Gleixner 2024-01-02 166 /* Kernel does not use INT $0x80! */
ae4c9ae1882092 Thomas Gleixner 2024-01-02 167 if (unlikely(!user_mode(regs))) {
ae4c9ae1882092 Thomas Gleixner 2024-01-02 168 irqentry_enter(regs);
ae4c9ae1882092 Thomas Gleixner 2024-01-02 169 instrumentation_begin();
ae4c9ae1882092 Thomas Gleixner 2024-01-02 170 panic("Unexpected external interrupt 0x80\n");
ae4c9ae1882092 Thomas Gleixner 2024-01-02 171 }
ae4c9ae1882092 Thomas Gleixner 2024-01-02 172
ae4c9ae1882092 Thomas Gleixner 2024-01-02 173 /*
ae4c9ae1882092 Thomas Gleixner 2024-01-02 174 * Establish kernel context for instrumentation, including for
ae4c9ae1882092 Thomas Gleixner 2024-01-02 175 * int80_is_external() below which calls into the APIC driver.
ae4c9ae1882092 Thomas Gleixner 2024-01-02 176 * Identical for soft and external interrupts.
ae4c9ae1882092 Thomas Gleixner 2024-01-02 177 */
e0df47ab7f352c Thomas Gleixner 2024-01-02 178 enter_from_user_mode(regs);
e0df47ab7f352c Thomas Gleixner 2024-01-02 179
e0df47ab7f352c Thomas Gleixner 2024-01-02 180 instrumentation_begin();
e0df47ab7f352c Thomas Gleixner 2024-01-02 181 add_random_kstack_offset();
e0df47ab7f352c Thomas Gleixner 2024-01-02 182
ae4c9ae1882092 Thomas Gleixner 2024-01-02 183 /* Validate that this is a soft interrupt to the extent possible */
ae4c9ae1882092 Thomas Gleixner 2024-01-02 184 if (unlikely(int80_is_external()))
ae4c9ae1882092 Thomas Gleixner 2024-01-02 185 panic("Unexpected external interrupt 0x80\n");
ae4c9ae1882092 Thomas Gleixner 2024-01-02 186
e0df47ab7f352c Thomas Gleixner 2024-01-02 187 /*
e0df47ab7f352c Thomas Gleixner 2024-01-02 188 * The low level idtentry code pushed -1 into regs::orig_ax
e0df47ab7f352c Thomas Gleixner 2024-01-02 189 * and regs::ax contains the syscall number.
e0df47ab7f352c Thomas Gleixner 2024-01-02 190 *
e0df47ab7f352c Thomas Gleixner 2024-01-02 191 * User tracing code (ptrace or signal handlers) might assume
e0df47ab7f352c Thomas Gleixner 2024-01-02 192 * that the regs::orig_ax contains a 32-bit number on invoking
e0df47ab7f352c Thomas Gleixner 2024-01-02 193 * a 32-bit syscall.
e0df47ab7f352c Thomas Gleixner 2024-01-02 194 *
e0df47ab7f352c Thomas Gleixner 2024-01-02 195 * Establish the syscall convention by saving the 32bit truncated
e0df47ab7f352c Thomas Gleixner 2024-01-02 196 * syscall number in regs::orig_ax and by invalidating regs::ax.
e0df47ab7f352c Thomas Gleixner 2024-01-02 197 */
e0df47ab7f352c Thomas Gleixner 2024-01-02 198 regs->orig_ax = regs->ax & GENMASK(31, 0);
e0df47ab7f352c Thomas Gleixner 2024-01-02 199 regs->ax = -ENOSYS;
e0df47ab7f352c Thomas Gleixner 2024-01-02 200
e0df47ab7f352c Thomas Gleixner 2024-01-02 201 nr = syscall_32_enter(regs);
e0df47ab7f352c Thomas Gleixner 2024-01-02 202
e0df47ab7f352c Thomas Gleixner 2024-01-02 203 local_irq_enable();
e0df47ab7f352c Thomas Gleixner 2024-01-02 204 nr = syscall_enter_from_user_mode_work(regs, nr);
e0df47ab7f352c Thomas Gleixner 2024-01-02 205 do_syscall_32_irqs_on(regs, nr);
e0df47ab7f352c Thomas Gleixner 2024-01-02 206
e0df47ab7f352c Thomas Gleixner 2024-01-02 207 instrumentation_end();
e0df47ab7f352c Thomas Gleixner 2024-01-02 208 syscall_exit_to_user_mode(regs);
e0df47ab7f352c Thomas Gleixner 2024-01-02 209 }
e0df47ab7f352c Thomas Gleixner 2024-01-02 210 #else /* CONFIG_IA32_EMULATION */
e0df47ab7f352c Thomas Gleixner 2024-01-02 211
:::::: The code at line 163 was first introduced by commit
:::::: e0df47ab7f352c5f055d05102cc1dfcb43567ba8 x86/entry: Convert INT 0x80 emulation to IDTENTRY
:::::: TO: Thomas Gleixner <tglx(a)linutronix.de>
:::::: CC: Zheng Zengkai <zhengzengkai(a)huawei.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3508/3508] drivers/acpi/pptt.c:411: warning: Function parameter or member 'acpi_cpu_id' not described in 'acpi_pptt_get_cpus_from_container'
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: 45f065231c8fbabe4e1b4449425a0574287e2bbb [3508/3508] ACPI / PPTT: Add a helper to fill a cpumask from a processor container
config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251211/202512111902.thfID0yT-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/202512111902.thfID0yT-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/202512111902.thfID0yT-lkp@intel.com/
All warnings (new ones prefixed by >>):
drivers/acpi/pptt.c:342: warning: Function parameter or member 'callback' not described in 'acpi_pptt_for_each_container'
drivers/acpi/pptt.c:342: warning: Function parameter or member 'arg' not described in 'acpi_pptt_for_each_container'
>> drivers/acpi/pptt.c:411: warning: Function parameter or member 'acpi_cpu_id' not described in 'acpi_pptt_get_cpus_from_container'
>> drivers/acpi/pptt.c:411: warning: Function parameter or member 'cpus' not described in 'acpi_pptt_get_cpus_from_container'
vim +411 drivers/acpi/pptt.c
400
401 /**
402 * acpi_pptt_get_cpus_from_container() - Populate a cpumask with all CPUs in a
403 * processor containers
404 *
405 * Find the specified Processor Container, and fill cpus with all the cpus
406 * below it.
407 *
408 * Return: 0 for a complete walk, or an error if the mask is incomplete.
409 */
410 int acpi_pptt_get_cpus_from_container(u32 acpi_cpu_id, cpumask_t *cpus)
> 411 {
412 struct __cpus_from_container_arg params;
413
414 params.acpi_cpu_id = acpi_cpu_id;
415 params.cpus = cpus;
416
417 cpumask_clear(cpus);
418 return acpi_pptt_for_each_container(&__cpus_from_container, ¶ms);
419 }
420
--
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_fb_helper.h:107: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_fb_helper_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: 544aacc8da43991ecec944d135d89335642d7b3c [3508/3508] drm: drm_fb_helper.h: Add kabi_reserve
reproduce: (https://download.01.org/0day-ci/archive/20251211/202512111820.FOuZzKT5-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/202512111820.FOuZzKT5-lkp@intel.com/
All warnings (new ones prefixed by >>):
./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'
./include/drm/drm_connector.h:1499: warning: Function parameter or member 'KABI_RESERVE(1' not described in 'drm_cmdline_mode'
./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
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
vim +107 ./include/drm/drm_fb_helper.h
386516744ba45d Dave Airlie 2010-03-30 67
207fd32970b1de Daniel Vetter 2013-01-20 68 /**
207fd32970b1de Daniel Vetter 2013-01-20 69 * struct drm_fb_helper_funcs - driver callbacks for the fbdev emulation library
207fd32970b1de Daniel Vetter 2013-01-20 70 *
207fd32970b1de Daniel Vetter 2013-01-20 71 * Driver callbacks used by the fbdev emulation helper library.
207fd32970b1de Daniel Vetter 2013-01-20 72 */
4abe35204af82a Dave Airlie 2010-03-30 73 struct drm_fb_helper_funcs {
264d6970e16c68 Daniel Vetter 2015-12-04 74 /**
264d6970e16c68 Daniel Vetter 2015-12-04 75 * @fb_probe:
264d6970e16c68 Daniel Vetter 2015-12-04 76 *
264d6970e16c68 Daniel Vetter 2015-12-04 77 * Driver callback to allocate and initialize the fbdev info structure.
264d6970e16c68 Daniel Vetter 2015-12-04 78 * Furthermore it also needs to allocate the DRM framebuffer used to
264d6970e16c68 Daniel Vetter 2015-12-04 79 * back the fbdev.
264d6970e16c68 Daniel Vetter 2015-12-04 80 *
264d6970e16c68 Daniel Vetter 2015-12-04 81 * This callback is mandatory.
264d6970e16c68 Daniel Vetter 2015-12-04 82 *
264d6970e16c68 Daniel Vetter 2015-12-04 83 * RETURNS:
264d6970e16c68 Daniel Vetter 2015-12-04 84 *
264d6970e16c68 Daniel Vetter 2015-12-04 85 * The driver should return 0 on success and a negative error code on
264d6970e16c68 Daniel Vetter 2015-12-04 86 * failure.
264d6970e16c68 Daniel Vetter 2015-12-04 87 */
4abe35204af82a Dave Airlie 2010-03-30 88 int (*fb_probe)(struct drm_fb_helper *helper,
4abe35204af82a Dave Airlie 2010-03-30 89 struct drm_fb_helper_surface_size *sizes);
f231af498c29f3 Thomas Zimmermann 2022-11-03 90
f231af498c29f3 Thomas Zimmermann 2022-11-03 91 /**
f231af498c29f3 Thomas Zimmermann 2022-11-03 92 * @fb_dirty:
f231af498c29f3 Thomas Zimmermann 2022-11-03 93 *
f231af498c29f3 Thomas Zimmermann 2022-11-03 94 * Driver callback to update the framebuffer memory. If set, fbdev
f231af498c29f3 Thomas Zimmermann 2022-11-03 95 * emulation will invoke this callback in regular intervals after
f231af498c29f3 Thomas Zimmermann 2022-11-03 96 * the framebuffer has been written.
f231af498c29f3 Thomas Zimmermann 2022-11-03 97 *
f231af498c29f3 Thomas Zimmermann 2022-11-03 98 * This callback is optional.
f231af498c29f3 Thomas Zimmermann 2022-11-03 99 *
f231af498c29f3 Thomas Zimmermann 2022-11-03 100 * Returns:
f231af498c29f3 Thomas Zimmermann 2022-11-03 101 * 0 on success, or an error code otherwise.
f231af498c29f3 Thomas Zimmermann 2022-11-03 102 */
f231af498c29f3 Thomas Zimmermann 2022-11-03 103 int (*fb_dirty)(struct drm_fb_helper *helper, struct drm_clip_rect *clip);
544aacc8da4399 Lin Yujun 2024-02-04 104
544aacc8da4399 Lin Yujun 2024-02-04 105 KABI_RESERVE(1)
544aacc8da4399 Lin Yujun 2024-02-04 106 KABI_RESERVE(2)
4abe35204af82a Dave Airlie 2010-03-30 @107 };
4abe35204af82a Dave Airlie 2010-03-30 108
9685cd9df75c1f Rob Clark 2015-08-25 109 /**
264d6970e16c68 Daniel Vetter 2015-12-04 110 * struct drm_fb_helper - main structure to emulate fbdev on top of KMS
9685cd9df75c1f Rob Clark 2015-08-25 111 * @fb: Scanout framebuffer object
9685cd9df75c1f Rob Clark 2015-08-25 112 * @dev: DRM device
9685cd9df75c1f Rob Clark 2015-08-25 113 * @funcs: driver callbacks for fb helper
9877d8f6bc3749 Thomas Zimmermann 2022-11-03 114 * @info: emulated fbdev device info struct
9685cd9df75c1f Rob Clark 2015-08-25 115 * @pseudo_palette: fake palette of 16 colors
9622349ea1b623 Thomas Zimmermann 2020-11-20 116 * @damage_clip: clip rectangle used with deferred_io to accumulate damage to
eaa434defaca17 Noralf Trønnes 2016-04-28 117 * the screen buffer
9622349ea1b623 Thomas Zimmermann 2020-11-20 118 * @damage_lock: spinlock protecting @damage_clip
7aa3d63e1ad56c Thomas Zimmermann 2022-11-18 119 * @damage_work: worker used to flush the framebuffer
cfe63423d9be3e Noralf Trønnes 2016-08-23 120 * @resume_work: worker used during resume if the console lock is already taken
264d6970e16c68 Daniel Vetter 2015-12-04 121 *
264d6970e16c68 Daniel Vetter 2015-12-04 122 * This is the main structure used by the fbdev helpers. Drivers supporting
264d6970e16c68 Daniel Vetter 2015-12-04 123 * fbdev emulation should embedded this into their overall driver structure.
ea0dd85a75f151 Daniel Vetter 2016-12-29 124 * Drivers must also fill out a &struct drm_fb_helper_funcs with a few
264d6970e16c68 Daniel Vetter 2015-12-04 125 * operations.
9685cd9df75c1f Rob Clark 2015-08-25 126 */
785b93ef8c3097 Dave Airlie 2009-08-28 127 struct drm_fb_helper {
d536540f304ce0 Noralf Trønnes 2018-07-03 128 /**
d536540f304ce0 Noralf Trønnes 2018-07-03 129 * @client:
d536540f304ce0 Noralf Trønnes 2018-07-03 130 *
d536540f304ce0 Noralf Trønnes 2018-07-03 131 * DRM client used by the generic fbdev emulation.
d536540f304ce0 Noralf Trønnes 2018-07-03 132 */
d536540f304ce0 Noralf Trønnes 2018-07-03 133 struct drm_client_dev client;
d536540f304ce0 Noralf Trønnes 2018-07-03 134
d536540f304ce0 Noralf Trønnes 2018-07-03 135 /**
d536540f304ce0 Noralf Trønnes 2018-07-03 136 * @buffer:
d536540f304ce0 Noralf Trønnes 2018-07-03 137 *
d536540f304ce0 Noralf Trønnes 2018-07-03 138 * Framebuffer used by the generic fbdev emulation.
d536540f304ce0 Noralf Trønnes 2018-07-03 139 */
d536540f304ce0 Noralf Trønnes 2018-07-03 140 struct drm_client_buffer *buffer;
d536540f304ce0 Noralf Trønnes 2018-07-03 141
785b93ef8c3097 Dave Airlie 2009-08-28 142 struct drm_framebuffer *fb;
785b93ef8c3097 Dave Airlie 2009-08-28 143 struct drm_device *dev;
3a4938799dec32 Thierry Reding 2014-06-27 144 const struct drm_fb_helper_funcs *funcs;
9877d8f6bc3749 Thomas Zimmermann 2022-11-03 145 struct fb_info *info;
386516744ba45d Dave Airlie 2010-03-30 146 u32 pseudo_palette[17];
9622349ea1b623 Thomas Zimmermann 2020-11-20 147 struct drm_clip_rect damage_clip;
9622349ea1b623 Thomas Zimmermann 2020-11-20 148 spinlock_t damage_lock;
7aa3d63e1ad56c Thomas Zimmermann 2022-11-18 149 struct work_struct damage_work;
cfe63423d9be3e Noralf Trønnes 2016-08-23 150 struct work_struct resume_work;
264d6970e16c68 Daniel Vetter 2015-12-04 151
e9827d8ea2142d Thierry Reding 2017-07-04 152 /**
e9827d8ea2142d Thierry Reding 2017-07-04 153 * @lock:
e9827d8ea2142d Thierry Reding 2017-07-04 154 *
e9827d8ea2142d Thierry Reding 2017-07-04 155 * Top-level FBDEV helper lock. This protects all internal data
e9827d8ea2142d Thierry Reding 2017-07-04 156 * structures and lists, such as @connector_info and @crtc_info.
e9827d8ea2142d Thierry Reding 2017-07-04 157 *
e9827d8ea2142d Thierry Reding 2017-07-04 158 * FIXME: fbdev emulation locking is a mess and long term we want to
e9827d8ea2142d Thierry Reding 2017-07-04 159 * protect all helper internal state with this lock as well as reduce
e9827d8ea2142d Thierry Reding 2017-07-04 160 * core KMS locking as much as possible.
e9827d8ea2142d Thierry Reding 2017-07-04 161 */
e9827d8ea2142d Thierry Reding 2017-07-04 162 struct mutex lock;
e9827d8ea2142d Thierry Reding 2017-07-04 163
264d6970e16c68 Daniel Vetter 2015-12-04 164 /**
264d6970e16c68 Daniel Vetter 2015-12-04 165 * @kernel_fb_list:
264d6970e16c68 Daniel Vetter 2015-12-04 166 *
264d6970e16c68 Daniel Vetter 2015-12-04 167 * Entry on the global kernel_fb_helper_list, used for kgdb entry/exit.
264d6970e16c68 Daniel Vetter 2015-12-04 168 */
785b93ef8c3097 Dave Airlie 2009-08-28 169 struct list_head kernel_fb_list;
8be48d924c307e Dave Airlie 2010-03-30 170
264d6970e16c68 Daniel Vetter 2015-12-04 171 /**
264d6970e16c68 Daniel Vetter 2015-12-04 172 * @delayed_hotplug:
264d6970e16c68 Daniel Vetter 2015-12-04 173 *
264d6970e16c68 Daniel Vetter 2015-12-04 174 * A hotplug was received while fbdev wasn't in control of the DRM
264d6970e16c68 Daniel Vetter 2015-12-04 175 * device, i.e. another KMS master was active. The output configuration
264d6970e16c68 Daniel Vetter 2015-12-04 176 * needs to be reprobe when fbdev is in control again.
264d6970e16c68 Daniel Vetter 2015-12-04 177 */
4abe35204af82a Dave Airlie 2010-03-30 178 bool delayed_hotplug;
ca91a2758fcef6 Daniel Vetter 2017-07-06 179
ca91a2758fcef6 Daniel Vetter 2017-07-06 180 /**
ca91a2758fcef6 Daniel Vetter 2017-07-06 181 * @deferred_setup:
ca91a2758fcef6 Daniel Vetter 2017-07-06 182 *
ca91a2758fcef6 Daniel Vetter 2017-07-06 183 * If no outputs are connected (disconnected or unknown) the FB helper
ca91a2758fcef6 Daniel Vetter 2017-07-06 184 * code will defer setup until at least one of the outputs shows up.
ca91a2758fcef6 Daniel Vetter 2017-07-06 185 * This field keeps track of the status so that setup can be retried
ca91a2758fcef6 Daniel Vetter 2017-07-06 186 * at every hotplug event until it succeeds eventually.
ca91a2758fcef6 Daniel Vetter 2017-07-06 187 *
ca91a2758fcef6 Daniel Vetter 2017-07-06 188 * Protected by @lock.
ca91a2758fcef6 Daniel Vetter 2017-07-06 189 */
ca91a2758fcef6 Daniel Vetter 2017-07-06 190 bool deferred_setup;
ca91a2758fcef6 Daniel Vetter 2017-07-06 191
ca91a2758fcef6 Daniel Vetter 2017-07-06 192 /**
ca91a2758fcef6 Daniel Vetter 2017-07-06 193 * @preferred_bpp:
ca91a2758fcef6 Daniel Vetter 2017-07-06 194 *
ca91a2758fcef6 Daniel Vetter 2017-07-06 195 * Temporary storage for the driver's preferred BPP setting passed to
ca91a2758fcef6 Daniel Vetter 2017-07-06 196 * FB helper initialization. This needs to be tracked so that deferred
ca91a2758fcef6 Daniel Vetter 2017-07-06 197 * FB helper setup can pass this on.
ca91a2758fcef6 Daniel Vetter 2017-07-06 198 *
ca91a2758fcef6 Daniel Vetter 2017-07-06 199 * See also: @deferred_setup
ca91a2758fcef6 Daniel Vetter 2017-07-06 200 */
ca91a2758fcef6 Daniel Vetter 2017-07-06 201 int preferred_bpp;
e7c5c29a9eb1c9 Thomas Zimmermann 2022-11-03 202
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 203 #ifdef CONFIG_FB_DEFERRED_IO
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 204 /**
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 205 * @fbdefio:
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 206 *
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 207 * Temporary storage for the driver's FB deferred I/O handler. If the
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 208 * driver uses the DRM fbdev emulation layer, this is set by the core
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 209 * to a generic deferred I/O handler if a driver is preferring to use
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 210 * a shadow buffer.
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 211 */
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 212 struct fb_deferred_io fbdefio;
d6591da5f3ff28 Javier Martinez Canillas 2023-01-21 213 #endif
544aacc8da4399 Lin Yujun 2024-02-04 214
544aacc8da4399 Lin Yujun 2024-02-04 215 KABI_RESERVE(1)
544aacc8da4399 Lin Yujun 2024-02-04 216 KABI_RESERVE(2)
785b93ef8c3097 Dave Airlie 2009-08-28 @217 };
785b93ef8c3097 Dave Airlie 2009-08-28 218
:::::: The code at line 107 was first introduced by commit
:::::: 4abe35204af82a018ca3ce6db4102aa09719698e drm/kms/fb: use slow work mechanism for normal hotplug also.
:::::: TO: Dave Airlie <airlied(a)redhat.com>
:::::: CC: Dave Airlie <airlied(a)redhat.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3534/3534] kernel/irq/proc.c:334:13: warning: no previous prototype for function 'register_irqchip_proc'
by kernel test robot 12 Dec '25
by kernel test robot 12 Dec '25
12 Dec '25
Hi Jinjie,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 5930fa3740c518a9f6ba688fd0c1873d6f3adbce
commit: 3053668e6b211924bb67c19d791a5a532eca2ad8 [3534/3534] arm64: Introduce Xint software solution
config: arm64-allnoconfig-bpf (https://download.01.org/0day-ci/archive/20251211/202512111720.WtJhXDC4-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/202512111720.WtJhXDC4-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/202512111720.WtJhXDC4-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/irq/proc.c:334:13: warning: no previous prototype for function 'register_irqchip_proc' [-Wmissing-prototypes]
334 | void __weak register_irqchip_proc(struct irq_desc *desc, void *irqp) { }
| ^
kernel/irq/proc.c:334:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
334 | void __weak register_irqchip_proc(struct irq_desc *desc, void *irqp) { }
| ^
| static
>> kernel/irq/proc.c:335:13: warning: no previous prototype for function 'unregister_irqchip_proc' [-Wmissing-prototypes]
335 | void __weak unregister_irqchip_proc(struct irq_desc *desc) { }
| ^
kernel/irq/proc.c:335:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
335 | void __weak unregister_irqchip_proc(struct irq_desc *desc) { }
| ^
| static
3 warnings generated.
vim +/register_irqchip_proc +334 kernel/irq/proc.c
333
> 334 void __weak register_irqchip_proc(struct irq_desc *desc, void *irqp) { }
> 335 void __weak unregister_irqchip_proc(struct irq_desc *desc) { }
336
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0