Kernel
Threads by month
- ----- 2025 -----
- 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
- 43 participants
- 20344 discussions

16 Sep '25
cleanup:
1) Add a macro to simplify obtaining the packet size
2) Remove redundant checks for cmd and size, as they are always true
3) Use memcpy instead of for loop statements
4) Remove the redundant initialization of ras_rsp_data to 0
5) Other minor cleanup
refactor:
During the dump file process, do not repeatedly open and close the file
No need to subtract the packet header length, then simplify the code for
obtaining the file buffer size.
Add helper of ras_get_rasdfx_header
Add a check to verify if cmd_ret->rsp_data_num is 0
Add a check to verify whether f_header.pkt_num exceeds the maximum value
The header.pkt_length indicates the size in bytes, which needs to be
converted to DWORD size, and then compared with DFX_REG_PACKET_HEAD_LEN
to address potential division by zero issues.
Refactoring of parseing payload.
Signed-off-by: Junhao He <hejunhao3(a)h-partners.com>
---
ras/ras_func/ras_common.h | 26 --
ras/ras_func/ras_dump_data.c | 541 +++++++++++++------------------
ras/ras_func/ras_dump_data.h | 101 +++---
ras/user_cmd/ras_cmd_dump.c | 37 +--
ras/user_cmd/ras_tools_include.h | 25 --
5 files changed, 282 insertions(+), 448 deletions(-)
delete mode 100644 ras/ras_func/ras_common.h
delete mode 100644 ras/user_cmd/ras_tools_include.h
diff --git a/ras/ras_func/ras_common.h b/ras/ras_func/ras_common.h
deleted file mode 100644
index 9b9a486..0000000
--- a/ras/ras_func/ras_common.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2022 Hisilicon Technologies Co., Ltd.
- * Hikptool is licensed under Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
- *
- * See the Mulan PSL v2 for more details.
- */
-
-#ifndef RAS_COMMON_H
-#define RAS_COMMON_H
-
-enum {
- RAS_DUMP,
-};
-
-enum ras_dump_cmd_type {
- DUMP_DFX = 0,
- DUMP_CLEAR,
-};
-
-#endif /* RAS_COMMON_H */
diff --git a/ras/ras_func/ras_dump_data.c b/ras/ras_func/ras_dump_data.c
index f4238e3..5d0ec8e 100644
--- a/ras/ras_func/ras_dump_data.c
+++ b/ras/ras_func/ras_dump_data.c
@@ -13,384 +13,299 @@
#include <unistd.h>
#include <stdint.h>
#include <stdlib.h>
+#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <time.h>
#include "hikptdev_plug.h"
#include "op_logs.h"
-#include "ras_common.h"
+#include "hikpt_rciep.h"
+#include "tool_lib.h"
#include "ras_dump_data.h"
-static struct dfx_reg_dump_header header;
+static void __attribute__((format(printf, 2, 3))) __THROWNL
+rasdfx_wr2buf(struct file_seq *s, const char *fmt, ...);
-static int ras_get_data(uint32_t ras_cmd_type, struct ras_dump_req_para *req_data,
- struct ras_rsp *ras_rsp_data)
+#define RAS_DUMP 0
+
+#define RASDFX_FILE_HEADER_LEN 6
+#define MAX_DFX_PACKET_LEN 256
+#define DFX_REG_PACKET_HEAD_LEN 3U
+
+#define DFX_DATA_CLEARED_MAGIC 0
+#define DFX_DATA_DUMPED_MAGIC 0x5aa5a55a
+
+#define RASDFX_PACKET_HEAD_SIZE 256
+#define RASDFX_PACKET_SIZE(reg_num) (RASDFX_PACKET_HEAD_SIZE + (reg_num) * 10)
+#define RASDFX_PACKET_NUM_MAX 1000000
+
+static void __THROWNL rasdfx_wr2buf(struct file_seq *s, const char *fmt, ...)
+{
+ size_t size = s->buf_size - s->buf_offs;
+ va_list argp;
+ int len;
+
+ va_start(argp, fmt);
+ len = vsnprintf(s->buf + s->buf_offs, size, fmt, argp);
+ va_end(argp);
+
+ if (len < 0 || (size_t)len >= size)
+ HIKP_WARN_PRINT("rasdfx_wr2buf failed, the dfx data is incomplete\n");
+ else
+ s->buf_offs += (size_t)len;
+}
+
+static struct hikp_cmd_ret *ras_get_rsp_data(struct ras_dump_cmd *cmd)
{
- uint32_t i;
- struct hikp_cmd_ret *cmd_ret;
struct hikp_cmd_header req_header;
+ struct hikp_cmd_ret *cmd_ret;
+
+ hikp_cmd_init(&req_header, RAS_MOD, RAS_DUMP, cmd->cmd_type);
+ cmd_ret = hikp_cmd_alloc(&req_header, &cmd->cmd_id, sizeof(cmd->cmd_id));
+ if (!cmd_ret) {
+ HIKP_ERROR_PRINT("alloc cmd failed, cmd: %u\n", cmd->cmd_id);
+ return NULL;
+ }
- hikp_cmd_init(&req_header, RAS_MOD, RAS_DUMP, ras_cmd_type);
- cmd_ret = hikp_cmd_alloc(&req_header, req_data, RAS_REQ_DATA_LEN);
- if (cmd_ret == NULL || cmd_ret->status != 0 ||
- cmd_ret->rsp_data_num > HIKP_RSP_ALL_DATA_MAX) {
- printf("hikp_data_proc err\n");
+ if (cmd_ret->status) {
+ HIKP_ERROR_PRINT("hikp_data_proc err, status: %u\n", cmd_ret->status);
hikp_cmd_free(&cmd_ret);
- return -1;
+ return NULL;
}
- ras_rsp_data->rsp_data_num = cmd_ret->rsp_data_num;
- for (i = 0; i < ras_rsp_data->rsp_data_num; i++) {
- ras_rsp_data->rsp_data[i] = cmd_ret->rsp_data[i];
- }
+ return cmd_ret;
+}
+
+static int ras_get_rasdfx_header(struct ras_dump_cmd *cmd, struct rasdfx_file_header *f_header)
+{
+ struct hikp_cmd_ret *cmd_ret;
+
+ cmd->cmd_id = 0;
+ cmd_ret = ras_get_rsp_data(cmd);
+ if (!cmd_ret)
+ return -ENOMEM;
+ if (cmd_ret->rsp_data_num != RASDFX_FILE_HEADER_LEN) {
+ HIKP_ERROR_PRINT("invalid number of response data: %u\n", cmd_ret->rsp_data_num);
+ hikp_cmd_free(&cmd_ret);
+ return -1;
+ }
+
+ memcpy(f_header, cmd_ret->rsp_data, sizeof(struct rasdfx_file_header));
hikp_cmd_free(&cmd_ret);
+
return 0;
}
-static void ras_print_time(struct file_seq *s)
+static bool ras_check_header(struct rasdfx_file_header *f_header)
{
+ if (f_header->pkt_size_dwords % REP_DATA_BLK_SIZE) {
+ HIKP_ERROR_PRINT("packet size is not aligned: %u\n", f_header->pkt_size_dwords);
+ return false;
+ }
+
+ /* Converted to DWORD units to simplify subsequent calculations */
+ f_header->pkt_size_dwords = f_header->pkt_size_dwords / REP_DATA_BLK_SIZE;
+ if (f_header->pkt_size_dwords < DFX_REG_PACKET_HEAD_LEN ||
+ f_header->pkt_size_dwords > MAX_DFX_PACKET_LEN) {
+ HIKP_ERROR_PRINT("packet size is out of bounds: %u\n", f_header->pkt_size_dwords);
+ return false;
+ }
+
+ if (f_header->pkt_num == 0 || f_header->pkt_num > RASDFX_PACKET_NUM_MAX) {
+ HIKP_ERROR_PRINT("packet number is out of bounds: %u\n", f_header->pkt_num);
+ return false;
+ }
+
+ return true;
+}
+
+static int ras_open_rasdfx_file_seq(struct file_seq *s, struct rasdfx_file_header *f_header)
+{
+ char file_path[OP_LOG_FILE_PATH_MAXLEN];
time_t time_seconds = time(0);
struct tm timeinfo;
+ s->buf_offs = 0;
+ s->buf_size = RASDFX_PACKET_SIZE(f_header->pkt_size_dwords);
+ s->buf = (char *)malloc(s->buf_size);
+ if (!s->buf) {
+ HIKP_ERROR_PRINT("malloc file_seq buffer is failed\n");
+ return -ENOMEM;
+ }
+
(void)localtime_r(&time_seconds, &timeinfo);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "Time: %d-%d-%d %d:%d:%d\n",
- timeinfo.tm_year + START_YEAR, timeinfo.tm_mon + 1, timeinfo.tm_mday,
- timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
+ snprintf(file_path, sizeof(file_path), "%srasdfx_%04d_%02d_%02d_%02d_%02d_%02d.log",
+ HIKP_LOG_DIR_PATH, timeinfo.tm_year + START_YEAR, timeinfo.tm_mon + 1,
+ timeinfo.tm_mday, timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
+
+ // creat and open file, set file permissiion 0440
+ s->fd = open(file_path, O_WRONLY | O_CREAT, S_IRUSR | S_IRGRP);
+ if (s->fd < 0) {
+ HIKP_ERROR_PRINT("open %s failed: %s\n", file_path, strerror(errno));
+ free(s->buf);
+ return -errno;
+ }
+
+ printf("dump dfx log start, log file: %s\n", file_path);
+ return 0;
}
-static int ras_parse_data(uint32_t *reg_save, uint32_t reg_num, uint32_t reg_off, struct file_seq *s)
+static void ras_close_rasdfx_file_seq(struct file_seq *s)
{
- uint32_t i, j;
- uint32_t cycle;
- uint32_t reg_count, pkt_reg_num;
- uint32_t off = reg_off;
-
- pkt_reg_num = header.pkt_length / sizeof(uint32_t);
- cycle = reg_num / pkt_reg_num;
- if (!cycle)
- return -1;
-
- for (i = 0; i < cycle; i++) {
- if ((off + pkt_reg_num) > HIKP_RSP_ALL_DATA_MAX) {
- HIKP_ERROR_PRINT("off is %u, pkt_reg_num is %u,\
- reg_save index will exceed max reg_save length\n",
- off, pkt_reg_num);
- return -1;
- }
-
- ras_print_time(s);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "Socket: 0X%hhX",
- (reg_save[off + DFX_HEAD_INFO_DW0] >> DFX_HEAD_SKT_ID_OFF) & 0xff);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "%4s", "");
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "DIE: 0X%hhX",
- (reg_save[off + DFX_HEAD_INFO_DW0] >> DFX_HEAD_DIE_ID_OFF) & 0xff);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "%4s", "");
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "Module: 0X%hhX",
- (reg_save[off + DFX_HEAD_INFO_DW1] >> DFX_HEAD_MODULE_ID_OFF) & 0xff);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "%4s", "");
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "Sub Module: 0X%hhX",
- (reg_save[off + DFX_HEAD_INFO_DW1] >> DFX_HEAD_SUBMODULE_ID_OFF) & 0xff);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "%4s", "");
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "SequenceNum: 0X%hhX",
- (reg_save[off + DFX_HEAD_INFO_DW1] >> DFX_HEAD_SEQUENCE_NUM_OFF) & 0xff);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "%4s", "");
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "Version: 0X%hhX\n",
- (reg_save[off + DFX_HEAD_INFO_DW0] >> DFX_HEAD_VERSION_OFF) & 0xff);
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len,
- "----------------------- DFX REGISTER DUMP -----------------------\n");
-
- reg_count = (reg_save[off + DFX_HEAD_INFO_DW1] >> DFX_HEAD_REG_COUNT_OFF) & 0xff;
- if (!reg_count || reg_count > pkt_reg_num - DFX_REG_PACKET_HEAD_LEN) {
- HIKP_ERROR_PRINT("reg_count is %u, value is not within the reasonable range(1-%u).\n",
- reg_count, pkt_reg_num - DFX_REG_PACKET_HEAD_LEN);
- return -1;
- }
-
- for (j = 0; j < reg_count; j++)
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "0X%08X\n",
- reg_save[off + DFX_COMMON_MAIN_TEXT_BEGIN + j]);
-
- s->len += snprintf(s->buffer + s->len, s->buffer_size - s->len, "\n");
- off += pkt_reg_num;
- }
-
- return 0;
+ (void)close(s->fd);
+ free(s->buf);
}
-static int ras_generate_file_name(struct file_seq *s)
+static void ras_parse_rasdfx_pkt_header(struct file_seq *s, struct rasdfx_pkt *pkt)
{
time_t time_seconds = time(0);
struct tm timeinfo;
- int ret;
(void)localtime_r(&time_seconds, &timeinfo);
- ret = snprintf(s->file_name, MAX_LOG_NAME_LEN, "rasdfx_%d_%d_%d_%d_%d_%d.log",
- timeinfo.tm_year + START_YEAR, timeinfo.tm_mon + 1, timeinfo.tm_mday,
- timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
- if (ret < 0 || (uint32_t)ret >= MAX_LOG_NAME_LEN) {
- HIKP_ERROR_PRINT("generate file name failed, errno is %d\n", errno);
- return -errno;
- }
-
- return 0;
+ rasdfx_wr2buf(s, "Time: %d-%d-%d %d:%d:%d\n",
+ timeinfo.tm_year + START_YEAR, timeinfo.tm_mon + 1, timeinfo.tm_mday,
+ timeinfo.tm_hour, timeinfo.tm_min, timeinfo.tm_sec);
+ rasdfx_wr2buf(s, "Socket: 0X%hhX ", pkt->dw0.skt_id);
+ rasdfx_wr2buf(s, "DIE: 0X%hhX ", pkt->dw0.die_id);
+ rasdfx_wr2buf(s, "Module: 0X%hhX ", pkt->dw1.module_id);
+ rasdfx_wr2buf(s, "Sub Module: 0X%hhX ", pkt->dw1.submodule_id);
+ rasdfx_wr2buf(s, "SequenceNum: 0X%hhX ", pkt->dw1.sequence_num);
+ rasdfx_wr2buf(s, "Version: 0X%hhX\n", pkt->dw0.version);
+ rasdfx_wr2buf(s, "----------------------- DFX REGISTER DUMP -----------------------\n");
}
-static int ras_store_data(struct file_seq *s)
+static int ras_parse_rasdfx_payload(struct file_seq *s, uint32_t *buf,
+ struct rasdfx_file_header *f_header)
{
- char file_path[OP_LOG_FILE_PATH_MAXLEN];
- size_t write_cnt;
- FILE *fp;
- int rc;
-
- rc = snprintf(file_path, sizeof(file_path), HIKP_LOG_DIR_PATH"%s", s->file_name);
- if (rc < 0) {
- HIKP_ERROR_PRINT("creat log file path fail.\n");
- return -EIO;
- }
+ struct rasdfx_pkt *pkt = (struct rasdfx_pkt *)buf;
+ uint32_t reg_offs, i;
+ ssize_t write_cnt;
- fp = fopen(file_path, "a");
- if (fp == NULL) {
- HIKP_ERROR_PRINT("open %s failed, errno is %d\n", file_path, errno);
- return -errno;
- }
+ rasdfx_wr2buf(s, "SocID: %u\n\n", pkt->dw0.soc_id);
- write_cnt = fwrite(s->buffer, 1, s->len, fp);
- if (write_cnt != (uint32_t)s->len) {
- fclose(fp);
- HIKP_ERROR_PRINT("write %s failed, write cnt %zu.\n", file_path, write_cnt);
- return -EAGAIN;
- }
+ for (i = 0; i < f_header->pkt_num; i++) {
+ ras_parse_rasdfx_pkt_header(s, pkt);
+ if (pkt->dw1.reg_count > f_header->pkt_size_dwords - DFX_REG_PACKET_HEAD_LEN) {
+ HIKP_ERROR_PRINT("ras dfx register number is incorrect\n");
+ return -1;
+ }
- printf("dump dfx log completed, log file: %s.\n", file_path);
- /* Set the file permission to 0440 */
- if (chmod(file_path, 0440))
- HIKP_ERROR_PRINT("chmod %s failed, errno is %d\n", file_path, errno);
+ for (reg_offs = 0; reg_offs < pkt->dw1.reg_count; reg_offs++)
+ rasdfx_wr2buf(s, "0X%08X\n", pkt->reg_base[reg_offs]);
+ rasdfx_wr2buf(s, "\n");
- if (fclose(fp)) {
- HIKP_ERROR_PRINT("close %s failed, errno is %d\n", file_path, errno);
- return -errno;
- }
+ write_cnt = write(s->fd, s->buf, s->buf_offs);
+ if (write_cnt != (ssize_t)s->buf_offs) {
+ HIKP_ERROR_PRINT("write rasdfx file failed: %s\n", strerror(errno));
+ return -1;
+ }
- s->len = 0;
+ s->buf_offs = 0;
+ pkt = (struct rasdfx_pkt *)((uint32_t *)pkt + f_header->pkt_size_dwords);
+ }
return 0;
}
-static int file_seq_init(struct file_seq *s, uint32_t size)
+static int ras_dump_data_into_buf(struct ras_dump_cmd *cmd, uint32_t *buf, uint32_t buf_max)
{
- if (!size)
- return -1;
+ struct hikp_cmd_ret *cmd_ret;
+ uint32_t copy_len = 0;
+ uint32_t data_num;
+
+ while (copy_len < buf_max) {
+ cmd->cmd_id++;
+ cmd_ret = ras_get_rsp_data(cmd);
+ if (!cmd_ret)
+ return -ENOMEM;
+
+ data_num = cmd_ret->rsp_data_num;
+ if (data_num == 0 || data_num > HIKP_RSP_ALL_DATA_MAX) {
+ HIKP_ERROR_PRINT("invalid response data number: %u\n", data_num);
+ hikp_cmd_free(&cmd_ret);
+ return -1;
+ }
- s->buffer_size = size;
- s->len = 0;
- s->buffer = (char*)malloc(s->buffer_size);
- if (!s->buffer)
- return -1;
+ if (copy_len + data_num > buf_max) {
+ HIKP_ERROR_PRINT("response data is more than expected\n");
+ hikp_cmd_free(&cmd_ret);
+ return -1;
+ }
- return 0;
-}
+ memcpy(buf + copy_len, cmd_ret->rsp_data, data_num * REP_DATA_BLK_SIZE);
+ copy_len += data_num;
+ hikp_cmd_free(&cmd_ret);
+ }
-static void file_seq_destroy(struct file_seq *s)
-{
- free(s->buffer);
- s->buffer = NULL;
+ return 0;
}
-static void ras_rsp_init(struct ras_rsp *ras_rsp_data)
+static int ras_get_rasdfx_payload(struct ras_dump_cmd *cmd, struct rasdfx_file_header *f_header)
{
- ras_rsp_data->first_pkt_begin = 0;
- ras_rsp_data->last_pkt_end = 0;
- ras_rsp_data->rsp_data_num = 0;
- ras_rsp_data->packet_buffer_len = 0;
+ uint32_t buf_max = f_header->pkt_size_dwords * f_header->pkt_num;
+ uint32_t *total_buf;
+ struct file_seq s;
+ int ret;
- memset(ras_rsp_data->rsp_data, 0, sizeof(ras_rsp_data->rsp_data));
- memset(ras_rsp_data->packet_buffer, 0, sizeof(ras_rsp_data->packet_buffer));
-}
+ total_buf = (uint32_t *)malloc(buf_max * REP_DATA_BLK_SIZE);
+ if (!total_buf) {
+ HIKP_ERROR_PRINT("malloc total_buf failed\n");
+ return -ENOMEM;
+ }
-static int parse_packet_buffer_data(struct ras_rsp *ras_rsp_data,
- uint32_t pkt_reg_num, struct file_seq *s)
-{
- int ret;
+ ret = ras_dump_data_into_buf(cmd, total_buf, buf_max);
+ if (ret)
+ goto release_total_buf;
- if (ras_rsp_data->packet_buffer_len) {
- uint32_t rest_pkt_length;
+ ret = ras_open_rasdfx_file_seq(&s, f_header);
+ if (ret)
+ goto release_total_buf;
- rest_pkt_length = pkt_reg_num - ras_rsp_data->packet_buffer_len;
- if (rest_pkt_length > ras_rsp_data->rsp_data_num) {
- HIKP_ERROR_PRINT("The rest of packet_buffer is %u and rsp_data_num is %u, \
- memcpy will out of bounds\n",
- rest_pkt_length, ras_rsp_data->rsp_data_num);
- return -1;
- }
- memcpy(ras_rsp_data->packet_buffer + ras_rsp_data->packet_buffer_len,
- ras_rsp_data->rsp_data, rest_pkt_length);
-
- ras_rsp_data->first_pkt_begin = rest_pkt_length;
- ret = ras_parse_data(ras_rsp_data->packet_buffer, pkt_reg_num, 0, s);
- if (ret) {
- HIKP_ERROR_PRINT("ras parse packet_buffer_data is failed\n");
- return ret;
- }
- } else {
- ras_rsp_data->first_pkt_begin = 0;
- }
-
- if (ras_rsp_data->first_pkt_begin == ras_rsp_data->rsp_data_num)
- return 0;
-
- ras_rsp_data->packet_buffer_len =
- (ras_rsp_data->rsp_data_num - ras_rsp_data->first_pkt_begin) % pkt_reg_num;
- ras_rsp_data->last_pkt_end = ras_rsp_data->rsp_data_num - ras_rsp_data->packet_buffer_len - 1;
- ras_rsp_data->rsp_data_num = ras_rsp_data->last_pkt_end - ras_rsp_data->first_pkt_begin + 1;
-
- memcpy(ras_rsp_data->packet_buffer, ras_rsp_data->rsp_data + ras_rsp_data->last_pkt_end + 1,
- ras_rsp_data->packet_buffer_len);
-
- return 0;
-}
+ ret = ras_parse_rasdfx_payload(&s, total_buf, f_header);
-static int ras_dump_pkt_pre(struct ras_rsp *ras_rsp_data, struct file_seq *s)
-{
- int ret;
- uint32_t reg_num, max_pkt_num, s_buffer_size;
-
- max_pkt_num = (HIKP_RSP_DATA_SIZE_MAX / header.pkt_length) + 1;
- reg_num = header.pkt_length / sizeof(uint32_t) - DFX_REG_PACKET_HEAD_LEN;
- s_buffer_size = max_pkt_num *
- (reg_num * DFX_FILE_SINGLE_REG_SIZE + DFX_FILE_SINGLE_PACKET_HEAD_SIZE);
- ras_rsp_data->rsp_data_num = 0;
-
- ret = file_seq_init(s, s_buffer_size);
- if (ret) {
- HIKP_ERROR_PRINT("malloc file_seq buffer is failed\n");
- return ret;
- }
-
- ret = ras_generate_file_name(s);
- if (ret) {
- HIKP_ERROR_PRINT("ras generate file name is failed\n");
- file_seq_destroy(s);
- return ret;
- }
-
- return ret;
+ ras_close_rasdfx_file_seq(&s);
+release_total_buf:
+ free(total_buf);
+ return ret;
}
-static int ras_dump_packet(struct tool_ras_cmd *cmd, struct ras_rsp *ras_rsp_data,
- struct ras_dump_req_para *req_data)
+int ras_data_dump(void)
{
- int ret;
- uint32_t i, cmd_num;
- bool has_printed_socid = false;
- struct file_seq s;
-
- ret = ras_dump_pkt_pre(ras_rsp_data, &s);
- if (ret)
- return ret;
-
- cmd_num = (header.pkt_num * header.pkt_length +
- HIKP_RSP_DATA_SIZE_MAX - 1) / HIKP_RSP_DATA_SIZE_MAX;
- /* 0: get header info; 1-n: get packet data */
- for (i = 0; i < cmd_num; i++) {
- req_data->cmd_id = i + 1;
- ret = ras_get_data(cmd->ras_cmd_type, req_data, ras_rsp_data);
- if (ret) {
- HIKP_ERROR_PRINT("ras dump cmd %u is failed\n", req_data->cmd_id);
- goto err_out_free;
- }
-
- if (!has_printed_socid) {
- s.len += snprintf(s.buffer + s.len, s.buffer_size - s.len, "SocID: %u\n",
- (ras_rsp_data->rsp_data[DFX_HEAD_INFO_DW0] >> DFX_HEAD_SOC_ID_OFF) & 0xff);
- s.len += snprintf(s.buffer + s.len, s.buffer_size - s.len, "\n");
-
- has_printed_socid = true;
- }
-
- ret = parse_packet_buffer_data(ras_rsp_data, header.pkt_length / sizeof(uint32_t), &s);
- if (ret) {
- HIKP_ERROR_PRINT("ras parse packet buffer data is failed\n");
- goto err_out_free;
- }
-
- if (ras_rsp_data->first_pkt_begin != ras_rsp_data->rsp_data_num) {
- ret = ras_parse_data(ras_rsp_data->rsp_data, ras_rsp_data->rsp_data_num,
- ras_rsp_data->first_pkt_begin, &s);
- if (ret) {
- HIKP_ERROR_PRINT("ras parse rsp_data is failed\n");
- goto err_out_free;
- }
- }
-
- ret = ras_store_data(&s);
- if (ret) {
- HIKP_ERROR_PRINT("ras store rsp_data is failed\n");
- goto err_out_free;
- }
- }
-
-err_out_free:
- file_seq_destroy(&s);
- return ret;
+ struct ras_dump_cmd cmd = { .cmd_type = DUMP_DFX };
+ struct rasdfx_file_header f_header;
+ int ret;
+
+ ret = ras_get_rasdfx_header(&cmd, &f_header);
+ if (ret)
+ return ret;
+
+ if (f_header.head_magic != DFX_DATA_DUMPED_MAGIC) {
+ HIKP_ERROR_PRINT("data does not exist or has been cleared.\n");
+ return -1;
+ }
+
+ if (!ras_check_header(&f_header))
+ return -1;
+
+ return ras_get_rasdfx_payload(&cmd, &f_header);
}
-int ras_data_dump(struct tool_ras_cmd *cmd)
+int ras_data_clear(void)
{
+ struct ras_dump_cmd cmd = { .cmd_type = DUMP_CLEAR };
+ struct rasdfx_file_header f_header;
int ret;
- struct ras_rsp ras_rsp_data;
- struct ras_dump_req_para req_data = {0};
-
- if (cmd == NULL)
- return -ENOSPC;
-
- ras_rsp_init(&ras_rsp_data);
- ret = ras_get_data(cmd->ras_cmd_type, &req_data, &ras_rsp_data);
- if (ret || (ras_rsp_data.rsp_data_num != DFX_REG_DUMP_HEADER_LEN)) {
- HIKP_ERROR_PRINT("ras dump header is failed, rsp_data_num is %u\n",
- ras_rsp_data.rsp_data_num);
- return -1;
- }
-
- if (!ras_rsp_data.rsp_data[HEAD_MAGIC]) {
- HIKP_ERROR_PRINT("ras dfx dump is failed, data does not exist or has been cleared.\n");
- return -1;
- }
-
- header.pkt_num = ras_rsp_data.rsp_data[PKT_NUM];
- header.pkt_length = ras_rsp_data.rsp_data[PKT_LENGTH];
- if (header.pkt_num == 0 || header.pkt_length < DFX_REG_PACKET_HEAD_LEN ||
- header.pkt_length > MAX_DFX_PACKET_LEN * sizeof(uint32_t)) {
- HIKP_ERROR_PRINT("ras dfx dump is failed, pkt_num is %u, pkt_length is %u\n",
- header.pkt_num, header.pkt_length);
- return -1;
- }
-
- ret = ras_dump_packet(cmd, &ras_rsp_data, &req_data);
- if (ret)
- HIKP_ERROR_PRINT("ras dump packet is failed\n");
-
- return ret;
-}
-int ras_data_clear(struct tool_ras_cmd *cmd)
-{
- int ret;
- struct ras_rsp ras_rsp_data;
- struct ras_dump_req_para req_data = { 0 };
-
- if (cmd == NULL)
- return -ENOSPC;
-
- ras_rsp_init(&ras_rsp_data);
- ret = ras_get_data(cmd->ras_cmd_type, &req_data, &ras_rsp_data);
- if (ret || ras_rsp_data.rsp_data_num != DFX_REG_DUMP_HEADER_LEN ||
- ras_rsp_data.rsp_data[HEAD_MAGIC] != DFX_DATA_IS_CLEARED) {
- HIKP_ERROR_PRINT("ras dfx data clear is failed\n");
- return -1;
- }
-
- return 0;
-}
+ ret = ras_get_rasdfx_header(&cmd, &f_header);
+ if (ret)
+ return ret;
+ if (f_header.head_magic != DFX_DATA_CLEARED_MAGIC) {
+ HIKP_ERROR_PRINT("ras dfx data clear is failed\n");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/ras/ras_func/ras_dump_data.h b/ras/ras_func/ras_dump_data.h
index b54efce..a5e8749 100644
--- a/ras/ras_func/ras_dump_data.h
+++ b/ras/ras_func/ras_dump_data.h
@@ -11,78 +11,59 @@
* See the Mulan PSL v2 for more details.
*/
-#ifndef RAS_DUMP_REG_H
-#define RAS_DUMP_REG_H
+#ifndef RAS_DUMP_DATA_H
+#define RAS_DUMP_DATA_H
-#include "ras_tools_include.h"
-#include "hikpt_rciep.h"
-#include "tool_lib.h"
+#include <stdint.h>
-#define RAS_FILE_HEAD_BUF_LEN 256
-#define MAX_DFX_PACKET_LEN 256
-#define RAS_REQ_DATA_LEN 4
-#define DFX_REG_DUMP_HEADER_LEN 6
-#define DFX_REG_PACKET_HEAD_LEN 3
-
-struct dfx_reg_dump_header {
- uint32_t head_magic; // 文件头的magic数字,特定值表示有效记录。
- uint32_t version; // 存储格式版本
- uint32_t cap_bits; // bit0表示是否开启crc,其余bit保留。
- uint32_t pkt_num; // packet数量
- uint32_t pkt_length; // 单个packet占用内存空间,单位bytes
- uint32_t reserved;
-};
-
-struct file_seq {
- char *buffer;
- uint32_t buffer_size;
- int len;
- char file_name[MAX_LOG_NAME_LEN];
+struct rasdfx_file_header {
+ uint32_t head_magic; // 文件头的magic数字,特定值表示有效记录。
+ uint32_t version; // 存储格式版本
+ uint32_t cap_bits; // bit0表示是否开启crc,其余bit保留。
+ uint32_t pkt_num; // packet数量
+ uint32_t pkt_size_dwords; // 单个packet内DWord个数,单位4bytes
+ uint32_t reserved;
};
-struct ras_rsp {
- uint32_t rsp_data[HIKP_RSP_ALL_DATA_MAX];
- uint32_t first_pkt_begin;
- uint32_t last_pkt_end;
- uint32_t rsp_data_num;
- uint32_t packet_buffer[MAX_DFX_PACKET_LEN];
- uint32_t packet_buffer_len;
+struct rasdfx_pkt_header_dw0 {
+ uint32_t version : 8;
+ uint32_t soc_id : 8;
+ uint32_t skt_id : 8;
+ uint32_t die_id : 8;
};
-struct ras_dump_req_para {
- uint32_t cmd_id;
+struct rasdfx_pkt_header_dw1 {
+ uint32_t module_id : 8;
+ uint32_t submodule_id : 8;
+ uint32_t sequence_num : 8;
+ uint32_t reg_count : 8;
};
-enum reg_dump_header_index {
- HEAD_MAGIC,
- VERSION,
- CAP_BITS,
- PKT_NUM,
- PKT_LENGTH
+struct rasdfx_pkt {
+ struct rasdfx_pkt_header_dw0 dw0;
+ struct rasdfx_pkt_header_dw1 dw1;
+ uint32_t reserved;
+ uint32_t reg_base[0];
};
-enum dfx_packet_index {
- DFX_HEAD_INFO_DW0,
- DFX_HEAD_INFO_DW1,
- DFX_COMMON_MAIN_TEXT_BEGIN = 3
+struct file_seq {
+ int fd;
+ char *buf;
+ size_t buf_size;
+ size_t buf_offs;
};
-#define DFX_HEAD_VERSION_OFF 0
-#define DFX_HEAD_SOC_ID_OFF 8
-#define DFX_HEAD_SKT_ID_OFF 16
-#define DFX_HEAD_DIE_ID_OFF 24
-#define DFX_HEAD_MODULE_ID_OFF 0
-#define DFX_HEAD_SUBMODULE_ID_OFF 8
-#define DFX_HEAD_SEQUENCE_NUM_OFF 16
-#define DFX_HEAD_REG_COUNT_OFF 24
-
-#define DFX_DATA_IS_CLEARED 0
-
-#define DFX_FILE_SINGLE_PACKET_HEAD_SIZE 256
-#define DFX_FILE_SINGLE_REG_SIZE 10
+enum ras_dump_cmd_type {
+ DUMP_DFX,
+ DUMP_CLEAR
+ };
+struct ras_dump_cmd {
+ enum ras_dump_cmd_type cmd_type;
+ uint32_t cmd_id; /* 0: get header info, 1-n: get packet data */
+};
-int ras_data_dump(struct tool_ras_cmd *cmd);
-int ras_data_clear(struct tool_ras_cmd *cmd);
+int ras_data_dump(void);
+int ras_data_clear(void);
-#endif /* RAS_DUMP_REG_H */
+#endif /* RAS_DUMP_DATA_H */
diff --git a/ras/user_cmd/ras_cmd_dump.c b/ras/user_cmd/ras_cmd_dump.c
index f8ae828..e0df98f 100644
--- a/ras/user_cmd/ras_cmd_dump.c
+++ b/ras/user_cmd/ras_cmd_dump.c
@@ -13,11 +13,12 @@
#include <stdint.h>
#include "tool_cmd.h"
-#include "ras_tools_include.h"
+#include "hikptdev_plug.h"
+#include "tool_lib.h"
#include "ras_dump_data.h"
-struct tool_ras_cmd g_ras_dump_cmd = {
- .ras_cmd_type = DUMP_DFX,
+struct ras_dump_cmd g_cmd = {
+ .cmd_type = DUMP_DFX
};
static int ras_dump_help(struct major_cmd_ctrl *self, const char *argv)
@@ -34,33 +35,21 @@ static int ras_dump_help(struct major_cmd_ctrl *self, const char *argv)
return 0;
}
-static enum ras_dump_cmd_type ras_get_cmd_type(void)
-{
- return g_ras_dump_cmd.ras_cmd_type;
-}
-
-static void ras_set_cmd_type(enum ras_dump_cmd_type type)
-{
- g_ras_dump_cmd.ras_cmd_type = type;
-}
-
static int ras_set_clear(struct major_cmd_ctrl *self, const char *argv)
{
HIKP_SET_USED(self);
HIKP_SET_USED(argv);
- ras_set_cmd_type(DUMP_CLEAR);
+ g_cmd.cmd_type = DUMP_CLEAR;
return 0;
}
-static int ras_dump_execute_process(void)
+static int ras_dump_execute_process(enum ras_dump_cmd_type cmd_type)
{
- if (ras_get_cmd_type() == DUMP_DFX)
- return ras_data_dump(&g_ras_dump_cmd);
- else if (ras_get_cmd_type() == DUMP_CLEAR)
- return ras_data_clear(&g_ras_dump_cmd);
- else
- return -EINVAL;
+ if (cmd_type == DUMP_CLEAR)
+ return ras_data_clear();
+ else
+ return ras_data_dump();
}
static void ras_dump_execute(struct major_cmd_ctrl *self)
@@ -75,12 +64,12 @@ static void ras_dump_execute(struct major_cmd_ctrl *self)
"ras dfx data clear error."
};
- ret = ras_dump_execute_process();
+ ret = ras_dump_execute_process(g_cmd.cmd_type);
if (ret == 0) {
- printf("%s\n", suc_msg[ras_get_cmd_type()]);
+ printf("%s\n", suc_msg[g_cmd.cmd_type]);
} else {
snprintf(self->err_str, sizeof(self->err_str), "%s\n",
- err_msg[ras_get_cmd_type()]);
+ err_msg[g_cmd.cmd_type]);
self->err_no = ret;
}
}
diff --git a/ras/user_cmd/ras_tools_include.h b/ras/user_cmd/ras_tools_include.h
deleted file mode 100644
index a999b8a..0000000
--- a/ras/user_cmd/ras_tools_include.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2022 Hisilicon Technologies Co., Ltd.
- * Hikptool is licensed under Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
- *
- * See the Mulan PSL v2 for more details.
- */
-
-#ifndef RAS_TOOLS_INCLUDE_H
-#define RAS_TOOLS_INCLUDE_H
-
-#include "hikptdev_plug.h"
-#include "tool_lib.h"
-#include "ras_common.h"
-
-struct tool_ras_cmd {
- enum ras_dump_cmd_type ras_cmd_type;
-};
-
-#endif /* RAS_TOOLS_INCLUDE_H */
--
2.33.0
1
0
---
tools/container/client_kill.sh | 8 ++++
tools/container/create.sh | 75 ++++++++++++++++++++++++++++++++
tools/container/edit_client.sh | 34 +++++++++++++++
tools/container/env.sh | 31 +++++++++++++
tools/container/get_specific.sh | 19 ++++++++
tools/container/run_all.sh | 13 ++++++
tools/container/run_bk.sh | 16 +++++++
tools/container/run_bk_117.sh | 7 +++
tools/container/runc_parallel.sh | 41 +++++++++++++++++
tools/container/usage.rst | 56 ++++++++++++++++++++++++
10 files changed, 300 insertions(+)
create mode 100644 tools/container/client_kill.sh
create mode 100644 tools/container/create.sh
create mode 100644 tools/container/edit_client.sh
create mode 100644 tools/container/env.sh
create mode 100644 tools/container/get_specific.sh
create mode 100644 tools/container/run_all.sh
create mode 100644 tools/container/run_bk.sh
create mode 100644 tools/container/run_bk_117.sh
create mode 100644 tools/container/runc_parallel.sh
create mode 100644 tools/container/usage.rst
diff --git a/tools/container/client_kill.sh b/tools/container/client_kill.sh
new file mode 100644
index 000000000000..a12c5be1edef
--- /dev/null
+++ b/tools/container/client_kill.sh
@@ -0,0 +1,8 @@
+source /home/name/common/env.sh
+
+for IP in "${CLIENT[@]}"
+do
+ echo $IP
+ ssh root@$IP "pgrep -f redis-benchmark | xargs kill -9"
+done
+ssh root@$CLIENT_OBSERVE "pgrep -f redis-benchmark | xargs kill -9"
diff --git a/tools/container/create.sh b/tools/container/create.sh
new file mode 100644
index 000000000000..3f507bfc39cd
--- /dev/null
+++ b/tools/container/create.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+source /home/name/common/env.sh
+
+nr=$1
+mode=${2:-"sequential"} # 默认顺序模式,可选:sequential(顺序)或interleave(交错)
+[[ -z $nr ]] && { echo "Usage: $0 <number> [sequential|interleave]"; exit 1; }
+
+docker stop $(docker ps -aq) 2>/dev/null
+docker rm $(docker ps -aq) 2>/dev/null
+
+mkdir -p /var/run/netns
+systemctl stop irqbalance
+
+if [[ $mode == "interleave" ]]; then
+ deployment_order=()
+ for i in $(seq 0 $((nr - 1))); do
+ for j in $(seq $numa_start $numa_end); do
+ deployment_order+=("$j $i")
+ done
+ done
+else
+ deployment_order=()
+ for j in $(seq $numa_start $numa_end); do
+ for i in $(seq 0 $((nr - 1))); do
+ deployment_order+=("$j $i")
+ done
+ done
+fi
+
+ip_count=0
+for deployment in "${deployment_order[@]}"; do
+ j=$(echo $deployment | awk '{print $1}')
+ i=$(echo $deployment | awk '{print $2}')
+
+ docker run --cpus=2 --cpuset-cpus=${cpus_numa[$j]} --cpuset-mems=$j -m 8g \
+ --cap-add CAP_SYS_ADMIN --privileged=true -itd \
+ --name redis-docker-bridge-numa$j-$i \
+ -v /home/name/redis_image:/home -v /usr:/usr -v /mnt:/mnt \
+ -v /lib/modules:/lib/modules -v /data:/data -v /etc:/etc \
+ openeuler-22.03-lts-sp4 /bin/bash
+
+ pid=$(docker inspect -f '{{.State.Pid}}' redis-docker-bridge-numa$j-$i)
+ vf=$((j * nr + i))
+ ip_count=$((ip_count + 1))
+ IP=${UNREACHABLE_IPS[$((ip_count))]}
+
+ echo "vf: ${vf} IP: ${IP}"
+
+ ln -sf /proc/$pid/ns/net /var/run/netns/redis-docker-bridge-numa$j-$i
+ ip link set enp24s0f0v$vf netns redis-docker-bridge-numa$j-$i
+ docker exec redis-docker-bridge-numa$j-$i ifconfig enp24s0f0v$vf $IP/16
+
+ docker exec -d redis-docker-bridge-numa$j-$i \
+ /home/c00838100/redis-origin/src/redis-server \
+ /home/c00838100/redis.conf --bind 0.0.0.0 --port 6379
+
+ while ! docker exec redis-docker-bridge-numa$j-$i ps -ef | grep -q "[r]edis-server"; do
+ sleep 0.5
+ done
+
+ pid=$(docker exec redis-docker-bridge-numa$j-$i pgrep -f redis-server)
+ core_array=(${cpus[$j]})
+ cpu_core=${core_array[$((i * CPU_DIST))]}
+ docker exec redis-docker-bridge-numa$j-$i taskset -pc $cpu_core $pid
+
+ vf_num=$vf
+ vf_dev=$(ls -la /sys/class/net/enp24s0f0np0/device/virtfn${vf_num} | awk '{print $11}' | sed "s|../||g")
+ irq_core=$((cpu_core + 1))
+
+ for irq in `cat /proc/interrupts | grep $vf_dev | awk -F ':' '{print $1}'`; do
+ echo $irq_core > /proc/irq/$irq/smp_affinity_list
+ done
+done
+
+echo "部署完成! 模式: $mode, 容器数量: $((nr * (numa_end - numa_start + 1)))"
diff --git a/tools/container/edit_client.sh b/tools/container/edit_client.sh
new file mode 100644
index 000000000000..7242d49de753
--- /dev/null
+++ b/tools/container/edit_client.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+source /home/name/common/env.sh
+
+connection=40
+data_len=3
+thread=50
+data_num=2000000
+data_num_large=200000000
+
+mod=0
+for IP in "${CLIENT[@]}"
+do
+echo $IP
+ cp run_bk.sh run.sh
+ echo $mod
+ sed -i "s|xx|$mod|g" run.sh
+ sed -i "s|aa|$connection|g" run.sh
+ sed -i "s|bb|$data_len|g" run.sh
+ sed -i "s|cc|$thread|g" run.sh
+ sed -i "s|dd|$data_num_large|g" run.sh
+
+ ssh root@$IP mkdir -p /home/name/common
+ scp /home/name/common/env.sh root@$IP:/home/name/common
+ scp run.sh root@$IP:/home/name/redis/client/
+ mod=$((mod + 1))
+done
+
+cp run_bk_117.sh run_117.sh
+sed -i "s|aa|$connection|g" run_117.sh
+sed -i "s|bb|$data_len|g" run_117.sh
+sed -i "s|cc|$thread|g" run_117.sh
+sed -i "s|dd|$data_num|g" run_117.sh
+scp run_117.sh root@$CLIENT_OBSERVE:/home/name/redis/client/run.sh
diff --git a/tools/container/env.sh b/tools/container/env.sh
new file mode 100644
index 000000000000..8ec051d67708
--- /dev/null
+++ b/tools/container/env.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+CPU_DIST=4
+
+cpus_numa=(
+"0-79" // todo
+)
+
+vf_core=317 // todo
+redis_core=316
+
+numa_start=0
+numa_end=3
+
+cpus=(
+"0 1"// todo
+"80 81"
+)
+
+CLIENT=(
+ip1 // todo
+ip2 // todo
+)
+
+count=80
+CLIENT_OBSERVE=ip3 // todo
+
+UNREACHABLE_IPS=(
+ip1 // todo
+ip2 // todo
+)
diff --git a/tools/container/get_specific.sh b/tools/container/get_specific.sh
new file mode 100644
index 000000000000..4bbbdac6e0b2
--- /dev/null
+++ b/tools/container/get_specific.sh
@@ -0,0 +1,19 @@
+nr=$1
+DIST=4
+
+dir=/home/name/redis_image/test_inbalance_new/result
+echo "****************"
+cat ${dir}/test_1/log_specific | grep throughput | awk '{print $3}'
+for i in $(seq 1 $nr); do
+cat ${dir}/test_$((i * DIST))/log_specific | grep throughput | awk '{print $3}'
+done
+echo "****************"
+cat ${dir}/test_1/log_specific | grep -A 2 "latency summary" | tail -n 1 | awk '{print $1}'
+for i in $(seq 1 $nr); do
+cat ${dir}/test_$((i * DIST))/log_specific | grep -A 2 "latency summary" | tail -n 1 | awk '{print $1}'
+done
+echo "****************"
+cat ${dir}/test_1/log_specific | grep -A 2 "latency summary" | tail -n 1 | awk '{print $5}'
+for i in $(seq 1 $nr); do
+cat ${dir}/test_$((i * DIST))/log_specific | grep -A 2 "latency summary" | tail -n 1 | awk '{print $5}'
+done
diff --git a/tools/container/run_all.sh b/tools/container/run_all.sh
new file mode 100644
index 000000000000..33d40b7d397e
--- /dev/null
+++ b/tools/container/run_all.sh
@@ -0,0 +1,13 @@
+source /home/name/common/env.sh
+
+rm -rf result/test*
+ssh root@$CLIENT_OBSERVE rm -rf /home/name/redis/client/test*
+nr=$1
+
+sh runc_parallel.sh 1
+sleep 3
+
+for i in $(seq 1 $nr); do
+sh runc_parallel.sh $((i * 4))
+sleep 3
+done
diff --git a/tools/container/run_bk.sh b/tools/container/run_bk.sh
new file mode 100644
index 000000000000..794d390b536e
--- /dev/null
+++ b/tools/container/run_bk.sh
@@ -0,0 +1,16 @@
+nr=$1
+
+source /home/name/common/env.sh
+dir=/home/name/redis/client/test_$((nr + 1))
+
+rm -rf $dir
+mkdir $dir
+
+for (( i=1; i<=$nr; i++ ))
+do
+ if [ $((i % 4)) -eq xx ]; then
+ redis-benchmark -h ${UNREACHABLE_IPS[$i]} -p 6379 -c aa -d bb -n dd -r 10000000 -t get --threads cc > $dir/log_${i} &
+# redis-benchmark -h ${UNREACHABLE_IPS[$((80-i))]} -p 6379 -c aa -d bb -n dd -r 10000000 -t get --threads cc > $dir/log_${i} &
+fi
+done
+wait
diff --git a/tools/container/run_bk_117.sh b/tools/container/run_bk_117.sh
new file mode 100644
index 000000000000..16315a256632
--- /dev/null
+++ b/tools/container/run_bk_117.sh
@@ -0,0 +1,7 @@
+nr=$1
+IP=ip_observe // todo
+
+#sleep 8
+rm -rf /home/name/redis/client/test_$nr
+mkdir /home/name/redis/client/test_$nr
+redis-benchmark -h $IP -p 6379 -c aa -d bb -n dd -r 10000000 -t get --threads cc > /home/name/redis/client/test_$nr/log_specific
diff --git a/tools/container/runc_parallel.sh b/tools/container/runc_parallel.sh
new file mode 100644
index 000000000000..47b48e88e703
--- /dev/null
+++ b/tools/container/runc_parallel.sh
@@ -0,0 +1,41 @@
+nr=$1
+
+source /home/name/common/env.sh
+sh client_kill.sh
+function cleanup() {
+ssh root@$CLIENT_OBSERVE "rm -rf /home/name/redis/client/test_*"
+for IP in "${CLIENT[@]}"
+do
+ ssh root@$IP "rm -rf /home/name/redis/client/test_*"
+done
+}
+
+function copy() {
+scp -r root@$CLIENT_OBSERVE:/home/name/redis/client/test_$((nr + 1)) result
+for IP in "${CLIENT[@]}"
+do
+ scp -r root@$IP:/home/name/redis/client/test_$((nr + 1)) result &> /dev/null
+done
+}
+
+function stress() {
+nr=$1
+for IP in "${CLIENT[@]}"
+do
+echo -n $IP
+ ssh root@$IP "sh /home/name/redis/client/run.sh $nr" &
+echo done
+done
+}
+
+nr=$((nr - 1))
+
+cleanup
+stress $nr
+sleep 2
+ssh root@$CLIENT_OBSERVE "sh /home/name/redis/client/run.sh $((nr + 1))"
+
+sleep 15
+mkdir result
+copy
+cat result/test_$((nr + 1))/log_specific | grep -A 4 throughput
diff --git a/tools/container/usage.rst b/tools/container/usage.rst
new file mode 100644
index 000000000000..beb2593b8142
--- /dev/null
+++ b/tools/container/usage.rst
@@ -0,0 +1,56 @@
+镜像下载:wget https://dl-cdn.openeuler.openatom.cn/openEuler-22.03-LTS-SP4/docker_img/aar…
+导入容器镜像:docker load < ./openEuler-docker.aarch64.tar.xz
+redis下载:https://redis.io/downloads/ 版本6.2
+修改点:
+protected-mode no
+daemonize yes
+cd redis-xx && make && make install
+
+# 1. runc
+基线测试方法: 6.6.0-92.0.0.96.oe2403sp2.aarch64
+1. 硬件:服务器,CX5双网口网卡共160个vf
+2. redis容器:每个2u8g容器1个核绑定redis实例,另1个核绑定VF中断;且两个核同属一个SMT
+3. 部署方式:numa 3的最后一个cluster部署1个观察容器,其他背景容器按顺序部署在numa 0-3
+4. 客户端:一台客户端单独加压观察容器,保证客户端不是瓶颈;其他四台客户端加压背景容器
+5. 组网方式:每个容器一个VF
+
+echo 80 > /sys/class/net/enp24s0f0np0/device/sriov_numvfs
+echo 80 > /sys/class/net/enp24s0f1np1/device/sriov_numvfs
+cd /home/name/redis_image/test_inbalance_refactor
+sh create_runc_passthrough.sh 20
+
+# 同时跑4个redis
+sh runc_parallel.sh 4
+# 同时跑80个redis
+sh runc_parallel.sh 80
+
+# 2. vm:6.6.0-95.0.0
+1. BIOS配置:开启SMMU、开启GiCv4.1
+2. 服务器内核配置:开启中断直通kvm-arm.vgic_v4_enable=1、1G大页:default_hugepagesz=1G hugepagesz=1G
+3. 虚拟机规格:2台虚机,单虚机2个numa,160U,240G内存,40个VF直通网卡
+4. host和虚拟机内开启调度策略优化(echo IRQ_AVG > /sys/kernel/debug/sched/features)
+
+
+smt开关:Advanced -> AMD CBS-> CPU Common Options -> performance -> SMU Common Options
+IOMMU开关:Advanced -> AMD CBS-> NBIO Common Options -> IOMMU/security -> IOMMU
+
+分配大页:
+echo 120 > /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages
+echo 120 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages
+echo 120 > /sys/devices/system/node/node2/hugepages/hugepages-1048576kB/nr_hugepages
+echo 120 > /sys/devices/system/node/node3/hugepages/hugepages-1048576kB/nr_hugepages
+
+virsh create /home/name/vms/vm1/vm1.xml
+virsh create /home/name/vms/vm2/vm2.xml
+
+ssh root@vm_ip1
+cd /home/name/redis_image/test_inbalance_refactor
+sh create_runc_passthrough.sh 20
+
+ssh root@vm_ip2
+cd /home/name/redis_image/test_inbalance_refactor
+sh create_runc_passthrough.sh 20
+
+# host上
+cd /home/name/redis_image/test_inbalance_refactor
+sh runc_parallel.sh 80
--
2.33.0
2
1

[PATCH OLK-6.6] vsock/virtio: Validate length in packet header before skb_put()
by Ziming Du 16 Sep '25
by Ziming Du 16 Sep '25
16 Sep '25
From: Will Deacon <will(a)kernel.org>
mainline inclusion
from mainline-v6.17-rc1
commit 0dab92484474587b82e8e0455839eaf5ac7bf894
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/ICWO1M
CVE: CVE-2025-39718
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
When receiving a vsock packet in the guest, only the virtqueue buffer
size is validated prior to virtio_vsock_skb_rx_put(). Unfortunately,
virtio_vsock_skb_rx_put() uses the length from the packet header as the
length argument to skb_put(), potentially resulting in SKB overflow if
the host has gone wonky.
Validate the length as advertised by the packet header before calling
virtio_vsock_skb_rx_put().
Cc: <stable(a)vger.kernel.org>
Fixes: 71dc9ec9ac7d ("virtio/vsock: replace virtio_vsock_pkt with sk_buff")
Signed-off-by: Will Deacon <will(a)kernel.org>
Message-Id: <20250717090116.11987-3-will(a)kernel.org>
Signed-off-by: Michael S. Tsirkin <mst(a)redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare(a)redhat.com>
Signed-off-by: Ziming Du <duziming2(a)huawei.com>
---
net/vmw_vsock/virtio_transport.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
index 2925f5d27ad3f..c4877cb7a5737 100644
--- a/net/vmw_vsock/virtio_transport.c
+++ b/net/vmw_vsock/virtio_transport.c
@@ -497,8 +497,9 @@ static void virtio_transport_rx_work(struct work_struct *work)
do {
virtqueue_disable_cb(vq);
for (;;) {
+ unsigned int len, payload_len;
+ struct virtio_vsock_hdr *hdr;
struct sk_buff *skb;
- unsigned int len;
if (!virtio_transport_more_replies(vsock)) {
/* Stop rx until the device processes already
@@ -515,12 +516,19 @@ static void virtio_transport_rx_work(struct work_struct *work)
vsock->rx_buf_nr--;
/* Drop short/long packets */
- if (unlikely(len < sizeof(struct virtio_vsock_hdr) ||
+ if (unlikely(len < sizeof(*hdr) ||
len > virtio_vsock_skb_len(skb))) {
kfree_skb(skb);
continue;
}
+ hdr = virtio_vsock_hdr(skb);
+ payload_len = le32_to_cpu(hdr->len);
+ if (unlikely(payload_len > len - sizeof(*hdr))) {
+ kfree_skb(skb);
+ continue;
+ }
+
virtio_vsock_skb_rx_put(skb);
virtio_transport_deliver_tap_pkt(skb);
virtio_transport_recv_pkt(&virtio_transport, skb);
--
2.43.0
2
1

16 Sep '25
From: Sergey Bashirov <sergeybashirov(a)gmail.com>
stable inclusion
from stable-v6.6.103
commit 24334f3cf8a294f253071b5bf22d754dbb6d0f2d
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/ICWGG2
CVE: CVE-2025-38691
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 9768797c219326699778fba9cd3b607b2f1e7950 ]
The error occurs on the third attempt to encode extents. When function
ext_tree_prepare_commit() reallocates a larger buffer to retry encoding
extents, the "layoutupdate_pages" page array is initialized only after the
retry loop. But ext_tree_free_commitdata() is called on every iteration
and tries to put pages in the array, thus dereferencing uninitialized
pointers.
An additional problem is that there is no limit on the maximum possible
buffer_size. When there are too many extents, the client may create a
layoutcommit that is larger than the maximum possible RPC size accepted
by the server.
During testing, we observed two typical scenarios. First, one memory page
for extents is enough when we work with small files, append data to the
end of the file, or preallocate extents before writing. But when we fill
a new large file without preallocating, the number of extents can be huge,
and counting the number of written extents in ext_tree_encode_commit()
does not help much. Since this number increases even more between
unlocking and locking of ext_tree, the reallocated buffer may not be
large enough again and again.
Co-developed-by: Konstantin Evtushenko <koevtushenko(a)yandex.com>
Signed-off-by: Konstantin Evtushenko <koevtushenko(a)yandex.com>
Signed-off-by: Sergey Bashirov <sergeybashirov(a)gmail.com>
Reviewed-by: Christoph Hellwig <hch(a)lst.de>
Link: https://lore.kernel.org/r/20250630183537.196479-2-sergeybashirov@gmail.com
Signed-off-by: Trond Myklebust <trond.myklebust(a)hammerspace.com>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Chen Jinghuang <Chenjinghuang2(a)huawei.com>
---
fs/nfs/blocklayout/extent_tree.c | 20 +++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/fs/nfs/blocklayout/extent_tree.c b/fs/nfs/blocklayout/extent_tree.c
index 8f7cff7a4293..0add0f329816 100644
--- a/fs/nfs/blocklayout/extent_tree.c
+++ b/fs/nfs/blocklayout/extent_tree.c
@@ -552,6 +552,15 @@ static int ext_tree_encode_commit(struct pnfs_block_layout *bl, __be32 *p,
return ret;
}
+/**
+ * ext_tree_prepare_commit - encode extents that need to be committed
+ * @arg: layout commit data
+ *
+ * Return values:
+ * %0: Success, all required extents are encoded
+ * %-ENOSPC: Some extents are encoded, but not all, due to RPC size limit
+ * %-ENOMEM: Out of memory, extents not encoded
+ */
int
ext_tree_prepare_commit(struct nfs4_layoutcommit_args *arg)
{
@@ -568,12 +577,12 @@ ext_tree_prepare_commit(struct nfs4_layoutcommit_args *arg)
start_p = page_address(arg->layoutupdate_page);
arg->layoutupdate_pages = &arg->layoutupdate_page;
-retry:
- ret = ext_tree_encode_commit(bl, start_p + 1, buffer_size, &count, &arg->lastbytewritten);
+ ret = ext_tree_encode_commit(bl, start_p + 1, buffer_size,
+ &count, &arg->lastbytewritten);
if (unlikely(ret)) {
ext_tree_free_commitdata(arg, buffer_size);
- buffer_size = ext_tree_layoutupdate_size(bl, count);
+ buffer_size = NFS_SERVER(arg->inode)->wsize;
count = 0;
arg->layoutupdate_pages =
@@ -588,7 +597,8 @@ ext_tree_prepare_commit(struct nfs4_layoutcommit_args *arg)
return -ENOMEM;
}
- goto retry;
+ ret = ext_tree_encode_commit(bl, start_p + 1, buffer_size,
+ &count, &arg->lastbytewritten);
}
*start_p = cpu_to_be32(count);
@@ -608,7 +618,7 @@ ext_tree_prepare_commit(struct nfs4_layoutcommit_args *arg)
}
dprintk("%s found %zu ranges\n", __func__, count);
- return 0;
+ return ret;
}
void
--
2.34.1
2
1

[PATCH OLK-6.6] media: uvcvideo: Fix 1-byte out-of-bounds read in uvc_parse_format()
by Huang Xiaojia 16 Sep '25
by Huang Xiaojia 16 Sep '25
16 Sep '25
From: Youngjun Lee <yjjuny.lee(a)samsung.com>
stable inclusion
from stable-v6.6.103
commit a97e062e4ff3dab84a2f1eb811e9eddc6699e2a9
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/ICWGIM
CVE: CVE-2025-38680
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 782b6a718651eda3478b1824b37a8b3185d2740c upstream.
The buffer length check before calling uvc_parse_format() only ensured
that the buffer has at least 3 bytes (buflen > 2), buf the function
accesses buffer[3], requiring at least 4 bytes.
This can lead to an out-of-bounds read if the buffer has exactly 3 bytes.
Fix it by checking that the buffer has at least 4 bytes in
uvc_parse_format().
Signed-off-by: Youngjun Lee <yjjuny.lee(a)samsung.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com>
Fixes: c0efd232929c ("V4L/DVB (8145a): USB Video Class driver")
Cc: stable(a)vger.kernel.org
Reviewed-by: Ricardo Ribalda <ribalda(a)chromium.org>
Link: https://lore.kernel.org/r/20250610124107.37360-1-yjjuny.lee@samsung.com
Signed-off-by: Laurent Pinchart <laurent.pinchart(a)ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil(a)xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Huang Xiaojia <huangxiaojia2(a)huawei.com>
---
drivers/media/usb/uvc/uvc_driver.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c
index ae2e8bd2b3f7..1a6a3c1cb4ae 100644
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
@@ -235,6 +235,9 @@ static int uvc_parse_format(struct uvc_device *dev,
unsigned int i, n;
u8 ftype;
+ if (buflen < 4)
+ return -EINVAL;
+
format->type = buffer[2];
format->index = buffer[3];
format->frames = frames;
--
2.34.1
2
1

[openeuler:openEuler-1.0-LTS] BUILD REGRESSION 8975e9a49fdd2f6402cc5fe68bc08d3c2b7a35a5
by kernel test robot 16 Sep '25
by kernel test robot 16 Sep '25
16 Sep '25
tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
branch HEAD: 8975e9a49fdd2f6402cc5fe68bc08d3c2b7a35a5 !17998 fix CVE-2025-38449
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202508301637.4sfu6N2M-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202509020546.DO94LENh-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202509020919.PwhZw5yj-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202509152248.Glnloqtx-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202509160016.RjCI0LQf-lkp@intel.com
https://lore.kernel.org/oe-kbuild-all/202509160041.xVp7j0qx-lkp@intel.com
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.o: warning: objtool: amdgpu_vmid_grab()+0xd3e: unreachable instruction
drivers/gpu/drm/gma500/mid_bios.o: warning: objtool: mid_get_fuse_settings()+0x63: unreachable instruction
fs/debugfs/file.o: warning: objtool: full_proxy_open()+0x55a: unreachable instruction
fs/ext4/mballoc.o: warning: objtool: ext4_mb_complex_scan_group()+0x11a4: unreachable instruction
include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
kernel/sched/core.c:5976:22: error: use of undeclared identifier 'root_task_group'; did you mean 'task_group'?
kernel/sched/debug.c:990:17: error: no member named 'nr_wakeups_preferred_cpus' in 'struct dyn_affinity_stats'
kernel/sched/debug.c:991:17: error: no member named 'nr_wakeups_force_preferred_cpus' in 'struct dyn_affinity_stats'
mm/.tmp_ioremap.o: warning: objtool: missing symbol for section .text
mm/debug.c:143:21: warning: more '%' conversions than data arguments [-Wformat-insufficient-args]
mm/debug.c:174:3: warning: format specifies type 'void *' but the argument has type 'int' [-Wformat]
mm/debug.c:175:18: warning: format specifies type 'unsigned long' but the argument has type 'const unsigned long *' [-Wformat]
mm/debug.c:175:3: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
mm/early_ioremap.o: warning: objtool: missing symbol for section .text
mm/hugetlb.c:1370:6: warning: no previous prototype for function 'free_huge_page_to_dhugetlb_pool' [-Wmissing-prototypes]
mm/ioremap.o: warning: objtool: missing symbol for section .text
mm/khugepaged.c:1387: warning: Function parameter or member 'reliable' not described in 'collapse_shmem'
mm/maccess.c:85:6: warning: no previous prototype for function '__probe_user_read' [-Wmissing-prototypes]
mm/memory.c:1546:10: error: implicit declaration of function 'hugetlb_insert_hugepage_pte_by_pa'; did you mean 'hugetlb_insert__hugepage_pte_by_pa'? [-Werror=implicit-function-declaration]
mm/memory_hotplug.c:926:16: warning: unused variable 'start_pfn' [-Wunused-variable]
mm/memory_hotplug.c:971:13: warning: 'rollback_node_hotadd' defined but not used [-Wunused-function]
mm/page_alloc.c:3005: warning: Function parameter or member 'mt' not described in '__putback_isolated_page'
mm/page_alloc.c:3123: warning: Function parameter or member 'mt' not described in '__putback_isolated_page'
mm/vmalloc.c:217:23: warning: variable 'start' set but not used [-Wunused-but-set-variable]
mm/vmalloc.c:231:16: warning: variable 'start' set but not used [-Wunused-but-set-variable]
mm/vmalloc.c:231:23: warning: variable 'start' set but not used [-Wunused-but-set-variable]
mm/vmscan.c:3257:21: error: implicit declaration of function 'kernel_swap_enabled' [-Werror,-Wimplicit-function-declaration]
mm/vmscan.c:3257:21: error: implicit declaration of function 'kernel_swap_enabled'; did you mean 'kernfs_ns_enabled'? [-Werror=implicit-function-declaration]
Unverified Error/Warning (likely false positive, kindly check if interested):
arch/arm64/kernel/smp.c:164:17: sparse: sparse: incorrect type in argument 2 (different address spaces)
arch/x86/platform/uv/tlb_uv.c:1674:37: warning: unused variable 'proc_uv_ptc_operations' [-Wunused-const-variable]
block/bfq-cgroup.o: warning: objtool: missing symbol for section .text
block/blk-mq-rdma.o: warning: objtool: missing symbol for section .text
block/ioctl.o: warning: objtool: missing symbol for section .text
block/partitions/check.o: warning: objtool: missing symbol for section .text
block/scsi_ioctl.o: warning: objtool: missing symbol for section .text
crypto/asymmetric_keys/mscode_parser.o: warning: objtool: missing symbol for section .text
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.o: warning: objtool: missing symbol for section .text
drivers/infiniband/sw/rxe/rxe_mr.o: warning: objtool: missing symbol for section .text.unlikely.
drivers/isdn/mISDN/dsp_cmx.o: warning: objtool: missing symbol for section .text.unlikely.
drivers/isdn/mISDN/dsp_hwec.o: warning: objtool: missing symbol for section .text.unlikely.
drivers/media/pci/cx25821/cx25821-core.o: warning: objtool: missing symbol for section .text.unlikely.
drivers/media/platform/xilinx/xilinx-vip.o: warning: objtool: missing symbol for section .text
drivers/misc/sgi-gru/gruprocfs.c:274:37: warning: unused variable 'statistics_fops' [-Wunused-const-variable]
drivers/misc/sgi-gru/gruprocfs.c:282:37: warning: unused variable 'mcs_statistics_fops' [-Wunused-const-variable]
drivers/misc/sgi-gru/gruprocfs.c:290:37: warning: unused variable 'options_fops' [-Wunused-const-variable]
drivers/misc/sgi-gru/gruprocfs.o: warning: objtool: missing symbol for section .text
drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c:854:5: warning: 'new_state' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/can/usb/peak_usb/pcan_usb_core.o: warning: objtool: missing symbol for section .text.unlikely.
drivers/net/ethernet/agere/et131x.c:1310:16: warning: 'reg' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/ethernet/mellanox/mlx5/core/en_dim.o: warning: objtool: missing symbol for section .text
drivers/net/ethernet/netronome/nfp/abm/ctrl.o: warning: objtool: missing symbol for section .text
drivers/net/ethernet/netronome/nfp/nfp_app.o: warning: objtool: missing symbol for section .text
drivers/net/wireless/ath/ath6kl/hif.o: warning: objtool: missing symbol for section .text
drivers/net/wireless/ath/ath6kl/init.o: warning: objtool: missing symbol for section .text
drivers/net/wireless/mediatek/mt76/mt76x2_eeprom.c:569:37: warning: 'data[2]' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/wireless/rsi/rsi_91x_sdio.c:1223:7: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/net/wireless/rsi/rsi_91x_sdio.c:237:12: warning: 'resp' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/nvdimm/label.o: warning: objtool: nd_blk_namespace_label_update()+0x1326: unreachable instruction
drivers/pinctrl/core.c:1338: error: Cannot parse struct or union!
drivers/scsi/qla2xxx/qla_nx2.c:1193:39: warning: 'agt_ctrl' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:2235:25: warning: 'read_value' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:2413:37: warning: 'r_data' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:2507:48: warning: 'c_value_r' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:3034:35: warning: 'temp' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:3084:37: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:3193:30: warning: 'r_value' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:3712:9: warning: 'spi_val' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/scsi/qla2xxx/qla_nx2.c:695:17: warning: 'value' may be used uninitialized in this function [-Wmaybe-uninitialized]
drivers/staging/gmjstcm/tcm_tis_spi.c:726:37: sparse: sparse: incorrect type in argument 1 (different address spaces)
drivers/staging/gmjstcm/tcm_tis_spi.c:729:42: sparse: sparse: incorrect type in argument 2 (different address spaces)
drivers/tty/tty_buffer.c:170:2: error: implicit declaration of function 'printk_safe_enter'; did you mean 'printk_nmi_enter'? [-Werror=implicit-function-declaration]
drivers/tty/tty_buffer.c:172:2: error: implicit declaration of function 'printk_safe_exit'; did you mean 'printk_nmi_exit'? [-Werror=implicit-function-declaration]
drivers/xen/xen-pciback/conf_space_quirks.o: warning: objtool: missing symbol for section .text
include/linux/list.h:63:20: warning: storing the address of local variable 'wait' in '((struct list_head *)x)[1].prev' [-Wdangling-pointer=]
include/linux/list.h:63:20: warning: storing the address of local variable 'waiter' in '*(struct list_head *)((char *)sem + 8).prev' [-Wdangling-pointer=]
include/linux/printk.h:346:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
include/linux/signal.h:180:29: warning: this statement may fall through [-Wimplicit-fallthrough=]
include/linux/spinlock.h:279:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized]
include/linux/string.h:430:24: warning: '__builtin_strcpy' source argument is the same as destination [-Wrestrict]
include/scsi/scsi_cmnd.h:333:12: warning: 'scsi_cmnd' may be used uninitialized in this function [-Wmaybe-uninitialized]
init/calibrate.c:271:28: warning: no previous prototype for 'calibration_delay_done' [-Wmissing-prototypes]
kernel/time/posix-cpu-timers.c:1023:3: warning: 'now' may be used uninitialized in this function [-Wmaybe-uninitialized]
kernel/trace/blktrace.c:1296:24: sparse: sparse: incorrect type in assignment (different base types)
kernel/trace/blktrace.c:1297:24: sparse: sparse: incorrect type in assignment (different base types)
kernel/trace/blktrace.c:1298:24: sparse: sparse: incorrect type in assignment (different base types)
mm/debug.o: warning: objtool: missing symbol for section .text.unlikely.
mm/hugetlb_cgroup.o: warning: objtool: missing symbol for section .init.text
mm/memcontrol.c:6287: warning: bad line: | 0, otherwise.
mm/memcontrol.o: warning: objtool: missing symbol for section .text.unlikely.
mm/memory.c:4655:3: warning: cast from 'int (*)(unsigned long, unsigned long, struct cgp_args *)' to 'ktask_thread_func' (aka 'int (*)(void *, void *, void *)') converts to incompatible function type [-Wcast-function-type-mismatch]
mm/memory.c:4803:3: warning: cast from 'int (*)(unsigned long, unsigned long, struct cgp_args *)' to 'ktask_thread_func' (aka 'int (*)(void *, void *, void *)') converts to incompatible function type [-Wcast-function-type-mismatch]
mm/page_ext.o: warning: objtool: missing symbol for section .init.text
mm/page_owner.o: warning: objtool: missing symbol for section .text.unlikely.
mm/rmap.c:1684:6: warning: no previous prototype for 'is_vma_temporary_stack' [-Wmissing-prototypes]
mm/rmap.c:906:17: warning: variable 'cstart' set but not used [-Wunused-but-set-variable]
mm/rodata_test.c:19:6: warning: no previous prototype for 'rodata_test' [-Wmissing-prototypes]
mm/rodata_test.o: warning: objtool: missing symbol for section .text
net/9p/client.c:534:24: warning: 'type' may be used uninitialized in this function [-Wmaybe-uninitialized]
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_deinit_hwdev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_detach
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_shutdown
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_stop
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_init_hwdev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-fault_level-set-but-not-used
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-pcie_src-set-but-not-used
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_io_flush.c:error:no-previous-prototype-for-sss_hwdev_flush_io
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_deinit_mgmt_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_init_mgmt_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm.c:error:no-previous-prototype-for-sss_sync_send_adm_msg
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_complete_adm_event
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_deinit_adm
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_init_adm
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_ceq_intr_handle
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_init_ceqe_desc
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_ctrlq_flush_sync_cmd
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq_channel
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_init_ctrlq_channel
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_reinit_ctrlq_ctx
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_wait_ctrlq_stop
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_alloc_db_addr
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_auto_mask
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_state
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_free_db_addr
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_func_type
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_glb_pf_vf_offset
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_global_func_id
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pcie_itf_id
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pf_id_of_vf
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_ppf_id
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_deinit_irq_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_init_irq_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_deinit_mbx
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_init_mbx
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_init_func_mbx_msg
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_recv_mbx_aeq_handler
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_flush_mgmt_workq
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_force_complete_all
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_mgmt_msg_aeqe_handler
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_error.c:error:no-previous-prototype-for-sss_detect_pci_error
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_attach_is_enable
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_info
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_names
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_init_uld_lock
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_lock_uld
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_unlock_uld
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_attach_uld_driver
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_pci_probe
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_adapter
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_function
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_pci_dev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_all_uld_driver
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_uld_driver
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_dettach_uld_dev
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_pci_remove
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_unmap_pci_bar
| |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_shutdown.c:error:no-previous-prototype-for-sss_pci_shutdown
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool.c:error:no-previous-prototype-for-sss_nic_set_ethtool_ops
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_strings
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_set_rx_mode_work
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_release_qp_irq
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_request_qp_irq
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-get_nic_uld_info
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_link_err
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_set_netdev_ops
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_delete_flow
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_flow
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_update_flow
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_rx_flow_rule
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_list
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_res_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_res_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_init_rq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_reset_rx_rss
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_update_rx_rss
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_resource
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_flush_all_sq
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_desc_group
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_resource
| |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_init_all_sq
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- include-linux-printk.h:warning:this-statement-may-fall-through
| |-- include-linux-signal.h:warning:this-statement-may-fall-through
| |-- init-calibrate.c:warning:no-previous-prototype-for-calibration_delay_done
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| |-- mm-memcontrol.c:warning:bad-line:otherwise.
| |-- mm-memory_hotplug.c:warning:rollback_node_hotadd-defined-but-not-used
| |-- mm-memory_hotplug.c:warning:unused-variable-start_pfn
| |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
| |-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
| `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- arm64-allnoconfig
| |-- include-linux-list.h:warning:storing-the-address-of-local-variable-wait-in-((struct-list_head-)x)-.prev
| |-- include-linux-list.h:warning:storing-the-address-of-local-variable-waiter-in-(struct-list_head-)((char-)sem-).prev
| |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
| |-- include-linux-printk.h:warning:this-statement-may-fall-through
| |-- include-linux-signal.h:warning:this-statement-may-fall-through
| |-- init-calibrate.c:warning:no-previous-prototype-for-calibration_delay_done
| |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
| |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
| |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
| |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
| |-- mm-vmalloc.c:warning:variable-start-set-but-not-used
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-defconfig
| |-- include-linux-list.h:warning:storing-the-address-of-local-variable-waiter-in-(struct-list_head-)((char-)sem-).prev
| |-- include-linux-printk.h:warning:this-statement-may-fall-through
| |-- include-linux-signal.h:warning:this-statement-may-fall-through
| |-- init-calibrate.c:warning:no-previous-prototype-for-calibration_delay_done
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| |-- mm-memcontrol.c:warning:bad-line:otherwise.
| |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
| `-- mm-vmalloc.c:warning:variable-start-set-but-not-used
|-- arm64-randconfig-001-20250705
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_enter
| |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_exit
| |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-randconfig-001-20250915
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- init-calibrate.c:warning:no-previous-prototype-for-calibration_delay_done
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
| |-- mm-memory_hotplug.c:warning:rollback_node_hotadd-defined-but-not-used
| |-- mm-memory_hotplug.c:warning:unused-variable-start_pfn
| |-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-randconfig-003-20250830
| |-- mm-memcontrol.c:warning:bad-line:otherwise.
| `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- arm64-randconfig-004-20250702
| |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
| `-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|-- arm64-randconfig-004-20250704
| |-- drivers-net-can-usb-kvaser_usb-kvaser_usb_hydra.c:warning:new_state-may-be-used-uninitialized-in-this-function
| |-- drivers-net-ethernet-agere-et131x.c:warning:reg-may-be-used-uninitialized-in-this-function
| |-- drivers-net-wireless-mediatek-mt76-mt76x2_eeprom.c:warning:data-may-be-used-uninitialized-in-this-function
| |-- drivers-net-wireless-rsi-rsi_91x_sdio.c:warning:data-may-be-used-uninitialized-in-this-function
| |-- drivers-net-wireless-rsi-rsi_91x_sdio.c:warning:resp-may-be-used-uninitialized-in-this-function
| |-- include-scsi-scsi_cmnd.h:warning:scsi_cmnd-may-be-used-uninitialized-in-this-function
| |-- kernel-time-posix-cpu-timers.c:warning:now-may-be-used-uninitialized-in-this-function
| `-- net-9p-client.c:warning:type-may-be-used-uninitialized-in-this-function
|-- arm64-randconfig-004-20250729
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:agt_ctrl-may-be-used-uninitialized-in-this-function
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:c_value_r-may-be-used-uninitialized-in-this-function
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:data-may-be-used-uninitialized-in-this-function
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:r_data-may-be-used-uninitialized-in-this-function
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:r_value-may-be-used-uninitialized-in-this-function
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:read_value-may-be-used-uninitialized-in-this-function
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:spi_val-may-be-used-uninitialized-in-this-function
| |-- drivers-scsi-qla2xxx-qla_nx2.c:warning:temp-may-be-used-uninitialized-in-this-function
| `-- drivers-scsi-qla2xxx-qla_nx2.c:warning:value-may-be-used-uninitialized-in-this-function
|-- arm64-randconfig-004-20250903
| `-- include-linux-string.h:warning:__builtin_strcpy-source-argument-is-the-same-as-destination
|-- arm64-randconfig-004-20250915
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_enter
| |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_exit
| |-- init-calibrate.c:warning:no-previous-prototype-for-calibration_delay_done
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-randconfig-r063-20250818
| `-- include-linux-spinlock.h:warning:flags-may-be-used-uninitialized-in-this-function
|-- arm64-randconfig-r121-20250728
| |-- block-blk-cgroup.c:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
| |-- block-blk-merge.c:sparse:sparse:symbol-blk_try_req_merge-was-not-declared.-Should-it-be-static
| |-- crypto-authenc.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-authencesn.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-ccm.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-cryptd.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-echainiv.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-gcm.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-gcm.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-usertype-a-got-restricted-__be64-usertype
| |-- crypto-gcm.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-usertype-b-got-restricted-__be64-usertype
| |-- crypto-hmac.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-seqiv.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-shash.c:sparse:sparse:Variable-length-array-is-used.
| |-- drivers-gpu-drm-amd-amdgpu-amdgpu_debugfs.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-signed-int-noderef-asn-got-signed-int-usertype
| |-- drivers-gpu-drm-amd-amdgpu-amdgpu_debugfs.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
| |-- drivers-gpu-drm-amd-amdgpu-amdgpu_ring.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
| |-- drivers-gpu-drm-amd-amdgpu-amdgpu_ttm.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
| |-- drivers-gpu-drm-ast-ast_fb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-got-void
| |-- drivers-gpu-drm-cirrus-cirrus_fbdev.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-got-void
| |-- drivers-gpu-drm-cirrus-cirrus_fbdev.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-char-noderef-asn-screen_base-got-void-assigned-sysram
| |-- drivers-gpu-drm-radeon-radeon_ttm.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
| |-- drivers-pci-controller-dwc-pcie-hisi.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-priv-got-void-noderef-asn-assigned-reg_base
| |-- drivers-pci-controller-dwc-pcie-hisi.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-void-noderef-asn-reg_base-got-void-priv
| |-- drivers-pci-controller-pci-xgene.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void
| |-- drivers-pci-controller-pci-xgene.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void-bar_addr
| |-- drivers-pci-controller-pci-xgene.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-bar_addr-got-void-noderef-asn
| |-- fs-dax.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
| |-- fs-dax.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- fs-dax.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
| |-- fs-fs-writeback.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- fs-fs-writeback.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
| |-- include-asm-generic-io.h:sparse:sparse:cast-to-restricted-__le16
| |-- include-asm-generic-io.h:sparse:sparse:cast-to-restricted-__le32
| |-- include-asm-generic-io.h:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-unsigned-int-usertype-val-got-restricted-__le32-usertype
| |-- include-asm-generic-io.h:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-unsigned-short-usertype-val-got-restricted-__le16-usertype
| |-- include-crypto-cbc.h:sparse:sparse:Variable-length-array-is-used.
| |-- include-trace-events-vmscan.h:sparse:sparse:restricted-isolate_mode_t-degrades-to-integer
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char-name
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dir_name-got-char
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-type-got-char-fs
| |-- init-do_mounts_initrd.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char
| |-- init-do_mounts_initrd.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dir_name-got-char
| |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-buf-got-char-const-p
| |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-addr-got-void-noderef-asn-mem_base
| |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-noderef-asn-mem_base-got-void
| |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-virt_base-got-void-noderef-asn-mem_base
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pagep
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pagep-got-void-noderef-asn
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
| |-- mm-huge_memory.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pslot
| |-- mm-huge_memory.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pslot-got-void-noderef-asn
| |-- mm-khugepaged.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- mm-khugepaged.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
| |-- mm-maccess.c:sparse:sparse:symbol-__probe_user_read-was-not-declared.-Should-it-be-static
| |-- mm-memory.c:sparse:sparse:Using-plain-integer-as-NULL-pointer
| |-- mm-migrate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pslot
| |-- mm-migrate.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pslot-got-void-noderef-asn
| |-- mm-page-writeback.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- mm-page-writeback.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
| |-- mm-truncate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
| |-- mm-truncate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
| |-- mm-vmstat.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-short-noderef-usertype-asn-got-unsigned-short
| `-- mm-workingset.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-arg-got-void-noderef-asn
|-- arm64-randconfig-r121-20250729
| |-- crypto-algif_aead.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-algif_hash.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-xcbc.c:sparse:sparse:Variable-length-array-is-used.
| |-- drivers-crypto-cavium-cpt-cptvf_main.c:sparse:sparse:symbol-cptvf_device_init-was-not-declared.-Should-it-be-static
| |-- drivers-crypto-cavium-cpt-cptvf_mbox.c:sparse:sparse:symbol-cptvf_mbox_send_ack-was-not-declared.-Should-it-be-static
| |-- drivers-crypto-cavium-cpt-cptvf_mbox.c:sparse:sparse:symbol-cptvf_mbox_send_nack-was-not-declared.-Should-it-be-static
| |-- drivers-crypto-cavium-cpt-cptvf_reqmanager.c:sparse:sparse:symbol-do_post_process-was-not-declared.-Should-it-be-static
| |-- drivers-crypto-cavium-cpt-cptvf_reqmanager.c:sparse:sparse:symbol-do_request_cleanup-was-not-declared.-Should-it-be-static
| |-- drivers-crypto-cavium-cpt-cptvf_reqmanager.c:sparse:sparse:symbol-send_cpt_command-was-not-declared.-Should-it-be-static
| |-- drivers-gpu-drm-mgag200-mgag200_cursor.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-asn-addr-got-void
| |-- drivers-gpu-drm-mgag200-mgag200_cursor.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-got-void
| |-- drivers-gpu-drm-mgag200-mgag200_fb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-got-void
| |-- drivers-irqchip-irq-mbigen.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-chip_data-got-void-noderef-asn-base
| |-- drivers-irqchip-irq-mbigen.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-void-noderef-asn-base-got-void-chip_data
| |-- drivers-power-reset-xgene-reboot.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void-csr
| |-- drivers-power-reset-xgene-reboot.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-csr-got-void-noderef-asn
| |-- drivers-tty-synclinkmp.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-unsigned-char-usertype-memory_base
| |-- fs-file.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-struct-file-assigned-new_fds-got-struct-file-noderef-asn-fd
| |-- fs-proc-etmem_scan.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-noderef-asn-buf-got-void-buf
| |-- include-linux-bpf-cgroup.h:sparse:sparse:Using-plain-integer-as-NULL-pointer
| |-- include-trace-events-vmscan.h:sparse:sparse:cast-to-restricted-isolate_mode_t
| |-- kernel-sys.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-int-noderef-asn-noderef-asn-got-int-noderef-asn-tid_addr
| `-- kernel-trace-ftrace.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-struct-ftrace_ops-ops-got-struct-ftrace_ops-noderef-asn-static-addressable-toplevel-ftrace_ops_list
|-- arm64-randconfig-r123-20250916
| |-- arch-arm64-kernel-smp.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-unsigned-long-assigned-park_exit
| |-- block-blk-merge.c:sparse:sparse:symbol-blk_try_req_merge-was-not-declared.-Should-it-be-static
| |-- crypto-algif_hash.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-authenc.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-authencesn.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-ccm.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-cryptd.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-echainiv.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-gcm.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-gcm.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-usertype-a-got-restricted-__be64-usertype
| |-- crypto-gcm.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-usertype-b-got-restricted-__be64-usertype
| |-- crypto-hmac.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-seqiv.c:sparse:sparse:Variable-length-array-is-used.
| |-- crypto-shash.c:sparse:sparse:Variable-length-array-is-used.
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- drivers-power-reset-xgene-reboot.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void-csr
| |-- drivers-power-reset-xgene-reboot.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-csr-got-void-noderef-asn
| |-- drivers-staging-gmjstcm-tcm_tis_spi.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-asn-addr-got-void-static-noderef-toplevel-asn-reuse_conf_
| |-- drivers-staging-gmjstcm-tcm_tis_spi.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void
| |-- fs-dax.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
| |-- fs-dax.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- fs-dax.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
| |-- include-asm-generic-io.h:sparse:sparse:cast-to-restricted-__le16
| |-- include-asm-generic-io.h:sparse:sparse:cast-to-restricted-__le32
| |-- include-asm-generic-io.h:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-unsigned-int-usertype-val-got-restricted-__le32-usertype
| |-- include-asm-generic-io.h:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-unsigned-short-usertype-val-got-restricted-__le16-usertype
| |-- include-crypto-cbc.h:sparse:sparse:Variable-length-array-is-used.
| |-- include-linux-bpf-cgroup.h:sparse:sparse:Using-plain-integer-as-NULL-pointer
| |-- include-linux-printk.h:warning:this-statement-may-fall-through
| |-- include-linux-signal.h:warning:this-statement-may-fall-through
| |-- include-trace-events-vmscan.h:sparse:sparse:cast-to-restricted-isolate_mode_t
| |-- include-trace-events-vmscan.h:sparse:sparse:restricted-isolate_mode_t-degrades-to-integer
| |-- init-calibrate.c:warning:no-previous-prototype-for-calibration_delay_done
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char-name
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dir_name-got-char
| |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-type-got-char-fs
| |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-addr-got-void-noderef-asn-mem_base
| |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-noderef-asn-mem_base-got-void
| |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-virt_base-got-void-noderef-asn-mem_base
| |-- kernel-sys.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-int-noderef-asn-noderef-asn-got-int-noderef-asn-tid_addr
| |-- kernel-trace-blktrace.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-restricted-__be32-usertype-device_from-got-unsigned-int
| |-- kernel-trace-blktrace.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-restricted-__be32-usertype-device_to-got-unsigned-int
| |-- kernel-trace-blktrace.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-restricted-__be64-usertype-sector_from-got-unsigned-long-long
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pagep
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pagep-got-void-noderef-asn
| |-- mm-filemap.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
| |-- mm-huge_memory.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pslot
| |-- mm-huge_memory.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pslot-got-void-noderef-asn
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| |-- mm-maccess.c:sparse:sparse:symbol-__probe_user_read-was-not-declared.-Should-it-be-static
| |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
| |-- mm-memory.c:sparse:sparse:Using-plain-integer-as-NULL-pointer
| |-- mm-migrate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pslot
| |-- mm-migrate.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pslot-got-void-noderef-asn
| |-- mm-page-writeback.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
| |-- mm-page-writeback.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
| |-- mm-page_alloc.c:sparse:sparse:invalid-assignment:
| |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
| |-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
| |-- mm-truncate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
| |-- mm-truncate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
| |-- mm-vmalloc.c:warning:variable-start-set-but-not-used
| `-- mm-workingset.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-arg-got-void-noderef-asn
|-- x86_64-allnoconfig
| |-- mm-ioremap.o:warning:objtool:missing-symbol-for-section-.text
| |-- mm-maccess.c:warning:no-previous-prototype-for-function-__probe_user_read
| |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-allyesconfig
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
| |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- mm-.tmp_ioremap.o:warning:objtool:missing-symbol-for-section-.text
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| |-- mm-maccess.c:warning:no-previous-prototype-for-function-__probe_user_read
| |-- mm-memcontrol.c:warning:bad-line:otherwise.
| |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
| |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
| `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-buildonly-randconfig-001-20250401
| `-- drivers-nvdimm-label.o:warning:objtool:nd_blk_namespace_label_update:unreachable-instruction
|-- x86_64-buildonly-randconfig-001-20250827
| |-- drivers-infiniband-sw-rxe-rxe_mr.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
| |-- drivers-net-ethernet-mellanox-mlx5-core-en_dim.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-net-ethernet-netronome-nfp-abm-ctrl.o:warning:objtool:missing-symbol-for-section-.text
| `-- drivers-xen-xen-pciback-conf_space_quirks.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-001-20250915
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- kernel-sched-core.c:error:use-of-undeclared-identifier-root_task_group
| |-- mm-maccess.c:warning:no-previous-prototype-for-function-__probe_user_read
| |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-buildonly-randconfig-002-20250806
| |-- arch-x86-platform-uv-tlb_uv.c:warning:unused-variable-proc_uv_ptc_operations
| |-- drivers-misc-sgi-gru-gruprocfs.c:warning:unused-variable-mcs_statistics_fops
| |-- drivers-misc-sgi-gru-gruprocfs.c:warning:unused-variable-options_fops
| |-- drivers-misc-sgi-gru-gruprocfs.c:warning:unused-variable-statistics_fops
| `-- drivers-misc-sgi-gru-gruprocfs.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-002-20250827
| |-- crypto-asymmetric_keys-mscode_parser.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-media-platform-xilinx-xilinx-vip.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-net-wireless-ath-ath6kl-hif.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-net-wireless-ath-ath6kl-init.o:warning:objtool:missing-symbol-for-section-.text
| `-- mm-hugetlb_cgroup.o:warning:objtool:missing-symbol-for-section-.init.text
|-- x86_64-buildonly-randconfig-003-20250207
| `-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|-- x86_64-buildonly-randconfig-003-20250704
| `-- mm-page_owner.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
|-- x86_64-buildonly-randconfig-003-20250711
| |-- block-ioctl.o:warning:objtool:missing-symbol-for-section-.text
| |-- block-partitions-check.o:warning:objtool:missing-symbol-for-section-.text
| |-- block-scsi_ioctl.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-gpu-drm-amd-amdkfd-kfd_process_queue_manager.o:warning:objtool:missing-symbol-for-section-.text
| |-- mm-debug.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
| |-- mm-memcontrol.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
| |-- mm-page_ext.o:warning:objtool:missing-symbol-for-section-.init.text
| `-- mm-rodata_test.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-004-20250915
| |-- block-cmdline-parser.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-gpu-drm-gma500-mid_bios.o:warning:objtool:mid_get_fuse_settings:unreachable-instruction
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- mm-ioremap.o:warning:objtool:missing-symbol-for-section-.text
| |-- mm-maccess.c:warning:no-previous-prototype-for-function-__probe_user_read
| `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-buildonly-randconfig-005-20241216
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-buildonly-randconfig-005-20250714
| |-- block-bfq-cgroup.o:warning:objtool:missing-symbol-for-section-.text
| |-- block-blk-mq-rdma.o:warning:objtool:missing-symbol-for-section-.text
| |-- drivers-isdn-mISDN-dsp_cmx.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
| |-- drivers-isdn-mISDN-dsp_hwec.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
| `-- drivers-net-can-usb-peak_usb-pcan_usb_core.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
|-- x86_64-buildonly-randconfig-005-20250820
| `-- mm-early_ioremap.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-005-20250827
| |-- drivers-media-pci-cx25821-cx25821-core.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
| `-- drivers-net-ethernet-netronome-nfp-nfp_app.o:warning:objtool:missing-symbol-for-section-.text
|-- x86_64-buildonly-randconfig-005-20250915
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| |-- mm-maccess.c:warning:no-previous-prototype-for-function-__probe_user_read
| |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
| `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-buildonly-randconfig-006-20250620
| `-- kernel-sched-core.c:error:use-of-undeclared-identifier-root_task_group
|-- x86_64-randconfig-101-20241223
| `-- fs-ext4-mballoc.o:warning:objtool:ext4_mb_complex_scan_group:unreachable-instruction
|-- x86_64-randconfig-103-20250219
| |-- kernel-sched-debug.c:error:no-member-named-nr_wakeups_force_preferred_cpus-in-struct-dyn_affinity_stats
| `-- kernel-sched-debug.c:error:no-member-named-nr_wakeups_preferred_cpus-in-struct-dyn_affinity_stats
|-- x86_64-randconfig-103-20250305
| `-- drivers-gpu-drm-amd-amdgpu-amdgpu_ids.o:warning:objtool:amdgpu_vmid_grab:unreachable-instruction
|-- x86_64-randconfig-121-20250916
| |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
| |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
| |-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
| |-- mm-maccess.c:warning:no-previous-prototype-for-function-__probe_user_read
| |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
| |-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
| |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
| |-- mm-vmalloc.c:warning:variable-start-set-but-not-used
| `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-randconfig-122-20241226
| `-- fs-debugfs-file.o:warning:objtool:full_proxy_open:unreachable-instruction
|-- x86_64-randconfig-r112-20250311
| |-- mm-debug.c:warning:format-specifies-type-int-but-the-argument-has-type-unsigned-long
| |-- mm-debug.c:warning:format-specifies-type-unsigned-long-but-the-argument-has-type-const-unsigned-long
| |-- mm-debug.c:warning:format-specifies-type-void-but-the-argument-has-type-int
| `-- mm-debug.c:warning:more-conversions-than-data-arguments
`-- x86_64-rhel-9.4-rust
|-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|-- mm-khugepaged.c:warning:Function-parameter-or-member-reliable-not-described-in-collapse_shmem
|-- mm-maccess.c:warning:no-previous-prototype-for-function-__probe_user_read
|-- mm-memcontrol.c:warning:bad-line:otherwise.
|-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|-- mm-page_alloc.c:warning:Function-parameter-or-member-mt-not-described-in-__putback_isolated_page
`-- mm-rmap.c:warning:variable-cstart-set-but-not-used
elapsed time: 739m
configs tested: 17
configs skipped: 122
tested configs:
arm64 allmodconfig gcc-15.1.0
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20250915 gcc-8.5.0
arm64 randconfig-002-20250915 gcc-6.5.0
arm64 randconfig-003-20250915 gcc-6.5.0
arm64 randconfig-004-20250915 gcc-11.5.0
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250915 clang-20
x86_64 buildonly-randconfig-002-20250915 gcc-12
x86_64 buildonly-randconfig-003-20250915 gcc-14
x86_64 buildonly-randconfig-004-20250915 clang-20
x86_64 buildonly-randconfig-005-20250915 clang-20
x86_64 buildonly-randconfig-006-20250915 gcc-14
x86_64 defconfig gcc-14
x86_64 rhel-9.4-rust clang-22
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10 3202/3202] include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
by kernel test robot 16 Sep '25
by kernel test robot 16 Sep '25
16 Sep '25
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: e1b2b313bb2317d78279ab55c49402841b4ce585
commit: 8a6bee347626968d467aef07453c4547bc23cb64 [3202/3202] blk-mq: fix potential uaf for 'queue_hw_ctx'
config: x86_64-randconfig-122-20250915 (https://download.01.org/0day-ci/archive/20250916/202509160546.iYswCLFR-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/20250916/202509160546.iYswCLFR-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/202509160546.iYswCLFR-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
block/blk-mq-sysfs.c: note: in included file (through include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-sysfs.c: note: in included file (through include/linux/printk.h, include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-sysfs.c: note: in included file (through include/linux/string.h, include/linux/bitmap.h, include/linux/cpumask.h, ...):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-sysfs.c: note: in included file:
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
--
block/blk-mq-tag.c: note: in included file (through include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-tag.c: note: in included file (through include/linux/printk.h, include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-tag.c: note: in included file (through include/linux/string.h, include/linux/bitmap.h, include/linux/cpumask.h, ...):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-tag.c: note: in included file:
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
--
block/blk-sysfs.c: note: in included file (through include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-sysfs.c: note: in included file (through include/linux/printk.h, include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-sysfs.c: note: in included file (through include/linux/string.h, include/linux/bitmap.h, include/linux/cpumask.h, ...):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-sysfs.c: note: in included file:
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
--
block/blk-mq-sched.c: note: in included file (through include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-sched.c: note: in included file (through include/linux/printk.h, include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-sched.c: note: in included file (through include/linux/string.h, include/linux/bitmap.h, include/linux/cpumask.h, ...):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq-sched.c: note: in included file:
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
--
block/blk-mq.c: note: in included file (through include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq.c: note: in included file (through include/linux/printk.h, include/linux/kernel.h):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
block/blk-mq.c: note: in included file (through include/linux/string.h, include/linux/bitmap.h, include/linux/cpumask.h, ...):
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: Expected ) in function call
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:44: sparse: sparse: got <
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:43: sparse: sparse: not a function <noident>
/opt/cross/clang-87f0227cb6/lib/clang/20/include/stdarg.h:22:22: sparse: sparse: bad constant expression type
>> block/blk-mq.c:3284:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
block/blk-mq.c:3284:17: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
block/blk-mq.c:3284:17: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
block/blk-mq.c: note: in included file:
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
>> include/linux/blk-mq.h:620:18: sparse: sparse: incompatible types in comparison expression (different address spaces):
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu *[noderef] __rcu *
include/linux/blk-mq.h:620:18: sparse: struct blk_mq_hw_ctx [noderef] __rcu **
vim +620 include/linux/blk-mq.h
614
615 static inline struct blk_mq_hw_ctx *queue_hctx(struct request_queue *q, int id)
616 {
617 struct blk_mq_hw_ctx *hctx;
618
619 rcu_read_lock();
> 620 hctx = *(rcu_dereference(q->queue_hw_ctx) + id);
621 rcu_read_unlock();
622
623 return hctx;
624 }
625
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:OLK-5.10] BUILD REGRESSION e1b2b313bb2317d78279ab55c49402841b4ce585
by kernel test robot 16 Sep '25
by kernel test robot 16 Sep '25
16 Sep '25
tree/branch: https://gitee.com/openeuler/kernel.git OLK-5.10
branch HEAD: e1b2b313bb2317d78279ab55c49402841b4ce585 !17995 media: dvb-frontends: w7090p: fix null-ptr-deref in w7090p_tuner_write_serpar and w7090p_tuner_read_serpar
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202509020441.cS6vg9iy-lkp@intel.com
../lib/gcc/aarch64-linux/5.5.0/plugin/include/config/elfos.h:102:21: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
../lib/gcc/aarch64-linux/5.5.0/plugin/include/defaults.h:126:24: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
../lib/gcc/aarch64-linux/5.5.0/plugin/include/gimple.h:2556:18: error: 'is_gimple_reg' was not declared in this scope; did you mean 'is_gimple_assign'?
../lib/gcc/aarch64-linux/5.5.0/plugin/include/gimple.h:2790:10: error: 'gimple_call_addr_fndecl' was not declared in this scope; did you mean 'gimple_call_set_fndecl'?
../lib/gcc/aarch64-linux/5.5.0/plugin/include/gimple.h:283:22: error: field 'call_used' has incomplete type 'pt_solution'
../lib/gcc/aarch64-linux/5.5.0/plugin/include/gimple.h:284:22: error: field 'call_clobbered' has incomplete type 'pt_solution'
block/bfq-cgroup.c:1427:6: warning: no previous prototype for 'bfqg_and_blkg_get' [-Wmissing-prototypes]
block/bfq-cgroup.c:692: warning: Excess function parameter 'blkcg' description in '__bfq_bic_change_cgroup'
block/bfq-cgroup.c:692: warning: Function parameter or member 'bfqg' not described in '__bfq_bic_change_cgroup'
crypto/af_alg.c:742: warning: Function parameter or member 'min' not described in 'af_alg_wait_for_data'
drivers/scsi/linkdata/ps3stor/./linux/ps3_base.c:546:5: error: no previous prototype for function 'ps3_pci_init' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_base.c:900:5: error: no previous prototype for function 'ps3_pci_init_complete' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_base.c:946:6: error: no previous prototype for function 'ps3_pci_init_complete_exit' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_cli_debug.c:1060:5: error: no previous prototype for function 'ps3_dump_context_show' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_driver_log.c:41:19: error: unused function 'time_for_log' [-Werror,-Wunused-function]
drivers/scsi/linkdata/ps3stor/./linux/ps3_driver_log.c:65:19: error: unused function 'time_for_file_name' [-Werror,-Wunused-function]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:160:5: error: no previous prototype for function 'ps3_dump_file_write' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:201:5: error: no previous prototype for function 'ps3_dump_file_close' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:29:5: error: no previous prototype for function 'ps3_dump_local_time' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:51:5: error: no previous prototype for function 'ps3_dump_filename_build' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/./linux/ps3_dump.c:77:5: error: no previous prototype for function 'ps3_dump_file_open' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_complete.c:132:6: error: no previous prototype for function 'ps3_trigger_irq_poll' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_complete.c:244:5: error: no previous prototype for function 'ps3_resp_status_convert' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_statistics.c:404:6: error: no previous prototype for function 'ps3_io_recv_ok_stat_inc' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_cmd_statistics.c:86:6: error: no previous prototype for function 'ps3_cmd_stat_content_clear' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_debug.c:884:5: error: no previous prototype for function 'ps3_dump_dir_length' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_device_manager.c:1582:5: error: no previous prototype for function 'ps3_scsi_private_init_pd' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_device_manager.c:1664:5: error: no previous prototype for function 'ps3_scsi_private_init_vd' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_device_manager_sas.c:1633:5: error: no previous prototype for function 'ps3_sas_expander_phys_refresh' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioc_adp.c:148:6: error: no previous prototype for function 'ps3_ioc_resource_prepare_hba' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioc_adp.c:37:6: error: no previous prototype for function 'ps3_ioc_resource_prepare_switch' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioc_adp.c:89:6: error: no previous prototype for function 'ps3_ioc_resource_prepare_raid' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioc_manager.c:308:5: error: no previous prototype for function 'ps3_hard_reset_to_ready' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_ioctl.c:786:6: error: no previous prototype for function 'ps3_clean_mgr_cmd' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:22:27: error: unused variable 'PS3_INTERRUPT_CMD_DISABLE_ALL_MASK' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:23:27: error: unused variable 'PS3_INTERRUPT_CMD_ENABLE_MSIX' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:24:27: error: unused variable 'PS3_INTERRUPT_MASK_DISABLE' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:25:27: error: unused variable 'PS3_INTERRUPT_STATUS_EXIST_IRQ' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:26:27: error: unused variable 'PS3_INTERRUPT_CLEAR_IRQ' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:28:27: error: unused variable 'PS3_SSD_IOPS_MSIX_VECTORS' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_irq.c:29:27: error: unused variable 'PS3_HDD_IOPS_MSIX_VECTORS' [-Werror,-Wunused-const-variable]
drivers/scsi/linkdata/ps3stor/ps3_module_para.c:610:14: error: no previous prototype for function 'ps3_cli_ver_query' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:1059:6: error: no previous prototype for function 'ps3_qos_pd_waitq_ratio_update' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2020:15: error: no previous prototype for function 'ps3_hba_qos_decision' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2041:6: error: no previous prototype for function 'ps3_hba_qos_waitq_notify' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2101:6: error: no previous prototype for function 'ps3_cmd_waitq_abort' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:212:1: error: no previous prototype for function 'ps3_qos_cmd_waitq_get' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2464:6: error: no previous prototype for function 'ps3_hba_qos_waitq_clear_all' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2828:6: error: no previous prototype for function 'ps3_hba_qos_vd_init' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2937:6: error: no previous prototype for function 'ps3_hba_qos_vd_reset' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3024:6: error: no previous prototype for function 'ps3_hba_qos_waitq_poll' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3280:15: error: no previous prototype for function 'ps3_raid_qos_decision' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3335:6: error: no previous prototype for function 'ps3_qos_mgrq_resend' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:336:15: error: no previous prototype for function 'ps3_qos_vd_cmdword_get' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3479:6: error: no previous prototype for function 'ps3_raid_qos_waitq_notify' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:352:15: error: no previous prototype for function 'ps3_qos_exclusive_cmdword_get' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:364:15: error: no previous prototype for function 'ps3_qos_tg_decision' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3822:15: error: no previous prototype for function 'ps3_raid_qos_waitq_abort' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:750:15: error: no previous prototype for function 'ps3_qos_all_pd_rc_get' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:877:6: error: no previous prototype for function 'ps3_pd_quota_waitq_clear_all' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_qos.c:893:6: error: no previous prototype for function 'ps3_pd_quota_waitq_clean' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:1174:5: error: no previous prototype for function 'ps3_range_check_and_insert' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:1232:5: error: no previous prototype for function 'ps3_r1x_hash_range_lock' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:1313:6: error: no previous prototype for function 'ps3_r1x_hash_range_unlock' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:579:5: error: no previous prototype for function 'ps3_r1x_hash_bit_check' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:679:6: error: no previous prototype for function 'ps3_r1x_conflict_queue_hash_bit_lock' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:731:5: error: no previous prototype for function 'ps3_r1x_hash_bit_lock' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_r1x_write_lock.c:989:6: error: no previous prototype for function 'ps3_r1x_hash_bit_unlock' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_rb_tree.c:155:6: error: no previous prototype for function 'rbtDelNodeDo' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:205:6: error: no previous prototype for function 'ps3_recovery_irq_queue_destroy' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:2701:6: error: no previous prototype for function 'ps3_hard_recovery_state_finish' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:364:5: error: no previous prototype for function 'ps3_recovery_state_transfer' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:73:30: error: no previous prototype for function 'ps3_recovery_context_alloc' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:83:6: error: no previous prototype for function 'ps3_recovery_context_free' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_recovery.c:89:6: error: no previous prototype for function 'ps3_recovery_context_delete' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_sas_transport.c:408:5: error: no previous prototype for function 'ps3_sas_update_phy_info' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_scsi_cmd_err.c:1111:5: error: no previous prototype for function 'ps3_wait_for_outstanding_complete' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_scsi_cmd_err.c:877:6: error: no previous prototype for function 'ps3_set_task_manager_busy' [-Werror,-Wmissing-prototypes]
drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1959:1: error: unused function 'ps3_scsih_dev_id_get' [-Werror,-Wunused-function]
kernel/sched/soft_domain.c:186:10: error: implicit declaration of function 'cpu_util_cfs' [-Werror,-Wimplicit-function-declaration]
mm/compaction.c:56:18: warning: 'HPAGE_FRAG_CHECK_INTERVAL_MSEC' defined but not used [-Wunused-const-variable=]
mm/filemap.c:823:14: warning: no previous prototype for function '__add_to_page_cache_locked' [-Wmissing-prototypes]
mm/filemap.c:830:14: warning: no previous prototype for '__add_to_page_cache_locked' [-Wmissing-prototypes]
mm/page_alloc.c:3036:6: warning: no previous prototype for '__drain_all_pages' [-Wmissing-prototypes]
mm/page_alloc.c:3036:6: warning: no previous prototype for function '__drain_all_pages' [-Wmissing-prototypes]
mm/page_alloc.c:3040:6: warning: no previous prototype for '__drain_all_pages' [-Wmissing-prototypes]
mm/page_alloc.c:3040:6: warning: no previous prototype for function '__drain_all_pages' [-Wmissing-prototypes]
mm/page_alloc.c:3480:15: warning: no previous prototype for 'should_fail_alloc_page' [-Wmissing-prototypes]
mm/page_alloc.c:6474:23: warning: no previous prototype for 'arch_memmap_init' [-Wmissing-prototypes]
mm/page_alloc.c:6634:6: warning: no previous prototype for '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
mm/page_alloc.c:6634:6: warning: no previous prototype for function '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
mm/page_alloc.c:6912:6: warning: no previous prototype for '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
mm/page_alloc.c:6912:6: warning: no previous prototype for function '__zone_set_pageset_high_and_batch' [-Wmissing-prototypes]
mm/slub.o: warning: objtool: kmem_cache_free()+0x3e0: unreachable instruction
Unverified Error/Warning (likely false positive, kindly check if interested):
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.o: warning: objtool: acquire_queue() falls through to next function asan.module_ctor()
fs/jffs2/gc.o: warning: objtool: jffs2_garbage_collect_live() falls through to next function jffs2_garbage_collect_dirent()
scripts/gcc-plugins/randomize_layout_plugin.c:692:20: error: 'last_stmt' was not declared in this scope; did you mean 'call_stmt'?
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allnoconfig
| |-- mm-filemap.c:warning:no-previous-prototype-for-__add_to_page_cache_locked
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-arch_memmap_init
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-should_fail_alloc_page
|-- arm64-defconfig
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
|-- arm64-randconfig-001-20250830
| `-- mm-compaction.c:warning:HPAGE_FRAG_CHECK_INTERVAL_MSEC-defined-but-not-used
|-- arm64-randconfig-002-20250321
| |-- lib-gcc-aarch64-linux-..-plugin-include-config-elfos.h:warning:invalid-suffix-on-literal-C-requires-a-space-between-literal-and-string-macro
| |-- lib-gcc-aarch64-linux-..-plugin-include-defaults.h:warning:invalid-suffix-on-literal-C-requires-a-space-between-literal-and-string-macro
| |-- lib-gcc-aarch64-linux-..-plugin-include-gimple.h:error:field-call_clobbered-has-incomplete-type-pt_solution
| |-- lib-gcc-aarch64-linux-..-plugin-include-gimple.h:error:field-call_used-has-incomplete-type-pt_solution
| |-- lib-gcc-aarch64-linux-..-plugin-include-gimple.h:error:gimple_call_addr_fndecl-was-not-declared-in-this-scope
| `-- lib-gcc-aarch64-linux-..-plugin-include-gimple.h:error:is_gimple_reg-was-not-declared-in-this-scope
|-- arm64-randconfig-003-20250806
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| `-- block-bfq-cgroup.c:warning:no-previous-prototype-for-bfqg_and_blkg_get
|-- arm64-randconfig-004-20250915
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
|-- x86_64-allnoconfig
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| `-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
|-- x86_64-allyesconfig
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_base.c:error:no-previous-prototype-for-function-ps3_pci_init_complete_exit-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_cli_debug.c:error:no-previous-prototype-for-function-ps3_dump_context_show-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_driver_log.c:error:unused-function-time_for_file_name-Werror-Wunused-function
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_driver_log.c:error:unused-function-time_for_log-Werror-Wunused-function
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_close-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_open-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_file_write-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_filename_build-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-.-linux-ps3_dump.c:error:no-previous-prototype-for-function-ps3_dump_local_time-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_resp_status_convert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_complete.c:error:no-previous-prototype-for-function-ps3_trigger_irq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_cmd_stat_content_clear-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_cmd_statistics.c:error:no-previous-prototype-for-function-ps3_io_recv_ok_stat_inc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_debug.c:error:no-previous-prototype-for-function-ps3_dump_dir_length-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_pd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager.c:error:no-previous-prototype-for-function-ps3_scsi_private_init_vd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_device_manager_sas.c:error:no-previous-prototype-for-function-ps3_sas_expander_phys_refresh-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_hba-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_raid-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_adp.c:error:no-previous-prototype-for-function-ps3_ioc_resource_prepare_switch-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioc_manager.c:error:no-previous-prototype-for-function-ps3_hard_reset_to_ready-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_ioctl.c:error:no-previous-prototype-for-function-ps3_clean_mgr_cmd-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_HDD_IOPS_MSIX_VECTORS-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_CLEAR_IRQ-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_CMD_DISABLE_ALL_MASK-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_CMD_ENABLE_MSIX-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_MASK_DISABLE-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_INTERRUPT_STATUS_EXIST_IRQ-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_irq.c:error:unused-variable-PS3_SSD_IOPS_MSIX_VECTORS-Werror-Wunused-const-variable
| |-- drivers-scsi-linkdata-ps3stor-ps3_module_para.c:error:no-previous-prototype-for-function-ps3_cli_ver_query-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_cmd_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_init-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_vd_reset-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_hba_qos_waitq_poll-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clean-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_pd_quota_waitq_clear_all-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_all_pd_rc_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_cmd_waitq_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_exclusive_cmdword_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_mgrq_resend-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_pd_waitq_ratio_update-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_tg_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_qos_vd_cmdword_get-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_raid_qos_decision-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_raid_qos_waitq_abort-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_qos.c:error:no-previous-prototype-for-function-ps3_raid_qos_waitq_notify-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_conflict_queue_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_check-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_bit_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_lock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_r1x_hash_range_unlock-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_r1x_write_lock.c:error:no-previous-prototype-for-function-ps3_range_check_and_insert-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_rb_tree.c:error:no-previous-prototype-for-function-rbtDelNodeDo-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_hard_recovery_state_finish-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_alloc-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_delete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_context_free-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_irq_queue_destroy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_recovery.c:error:no-previous-prototype-for-function-ps3_recovery_state_transfer-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_sas_transport.c:error:no-previous-prototype-for-function-ps3_sas_update_phy_info-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_set_task_manager_busy-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsi_cmd_err.c:error:no-previous-prototype-for-function-ps3_wait_for_outstanding_complete-Werror-Wmissing-prototypes
| |-- drivers-scsi-linkdata-ps3stor-ps3_scsih.c:error:unused-function-ps3_scsih_dev_id_get-Werror-Wunused-function
| |-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
|-- x86_64-buildonly-randconfig-001-20250915
| `-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
|-- x86_64-buildonly-randconfig-002-20250806
| `-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
|-- x86_64-buildonly-randconfig-002-20250909
| `-- kernel-sched-soft_domain.c:error:implicit-declaration-of-function-cpu_util_cfs-Werror-Wimplicit-function-declaration
|-- x86_64-buildonly-randconfig-002-20250915
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| `-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
|-- x86_64-buildonly-randconfig-003-20250915
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:no-previous-prototype-for-bfqg_and_blkg_get
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| `-- mm-compaction.c:warning:HPAGE_FRAG_CHECK_INTERVAL_MSEC-defined-but-not-used
|-- x86_64-buildonly-randconfig-004-20250915
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
|-- x86_64-buildonly-randconfig-005-20250915
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| |-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| `-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
|-- x86_64-buildonly-randconfig-006-20250915
| |-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
| `-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
|-- x86_64-defconfig
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-__zone_set_pageset_high_and_batch
|-- x86_64-randconfig-121-20250909
| `-- scripts-gcc-plugins-randomize_layout_plugin.c:error:last_stmt-was-not-declared-in-this-scope
|-- x86_64-randconfig-121-20250915
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- fs-jffs2-gc.o:warning:objtool:jffs2_garbage_collect_live-falls-through-to-next-function-jffs2_garbage_collect_dirent()
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
|-- x86_64-randconfig-122-20250915
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
|-- x86_64-randconfig-123-20250722
| `-- drivers-gpu-drm-amd-amdgpu-amdgpu_amdkfd_gfx_v7.o:warning:objtool:acquire_queue-falls-through-to-next-function-asanmodule_ctor()
|-- x86_64-randconfig-123-20250915
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
|-- x86_64-randconfig-161-20250915
| |-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
| |-- ld.lld:error:version-script-assignment-of-LINUX_2.-to-symbol-__vdso_sgx_enter_enclave-failed:symbol-not-defined
| |-- llvm-objcopy:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- llvm-objdump:error:arch-x86-entry-vdso-vdso64.so.dbg:No-such-file-or-directory
| |-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
| |-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
| `-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
`-- x86_64-rhel-9.4-rust
|-- block-bfq-cgroup.c:warning:Excess-function-parameter-blkcg-description-in-__bfq_bic_change_cgroup
|-- block-bfq-cgroup.c:warning:Function-parameter-or-member-bfqg-not-described-in-__bfq_bic_change_cgroup
|-- crypto-af_alg.c:warning:Function-parameter-or-member-min-not-described-in-af_alg_wait_for_data
|-- mm-filemap.c:warning:no-previous-prototype-for-function-__add_to_page_cache_locked
|-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__drain_all_pages
|-- mm-page_alloc.c:warning:no-previous-prototype-for-function-__zone_set_pageset_high_and_batch
`-- mm-slub.o:warning:objtool:kmem_cache_free:unreachable-instruction
elapsed time: 741m
configs tested: 17
configs skipped: 122
tested configs:
arm64 allmodconfig clang-19
arm64 allnoconfig gcc-15.1.0
arm64 defconfig gcc-15.1.0
arm64 randconfig-001-20250915 clang-22
arm64 randconfig-002-20250915 clang-22
arm64 randconfig-003-20250915 gcc-6.5.0
arm64 randconfig-004-20250915 gcc-11.5.0
x86_64 allnoconfig clang-20
x86_64 allyesconfig clang-20
x86_64 buildonly-randconfig-001-20250915 clang-20
x86_64 buildonly-randconfig-002-20250915 gcc-12
x86_64 buildonly-randconfig-003-20250915 gcc-14
x86_64 buildonly-randconfig-004-20250915 clang-20
x86_64 buildonly-randconfig-005-20250915 clang-20
x86_64 buildonly-randconfig-006-20250915 gcc-14
x86_64 defconfig gcc-14
x86_64 rhel-9.4-rust clang-22
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1782/1782] mm/vmalloc.c:217:23: warning: variable 'start' set but not used
by kernel test robot 16 Sep '25
by kernel test robot 16 Sep '25
16 Sep '25
Hi Nicholas,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 8975e9a49fdd2f6402cc5fe68bc08d3c2b7a35a5
commit: 3eb01faed2ebb254019a3bb72ce3bdf4d0a9be74 [1782/1782] mm/vmalloc: add vmap_range_noflush variant
config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20250916/202509160016.RjCI0LQf-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250916/202509160016.RjCI0LQf-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/202509160016.RjCI0LQf-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/vmalloc.c: In function 'vmap_range_noflush':
>> mm/vmalloc.c:217:23: warning: variable 'start' set but not used [-Wunused-but-set-variable]
217 | unsigned long start;
| ^~~~~
mm/vmalloc.c: At top level:
mm/vmalloc.c:1417:6: warning: no previous prototype for 'set_iounmap_nonlazy' [-Wmissing-prototypes]
1417 | void set_iounmap_nonlazy(void)
| ^~~~~~~~~~~~~~~~~~~
In file included from arch/arm64/include/asm/atomic.h:36,
from include/linux/atomic.h:7,
from include/asm-generic/bitops/atomic.h:5,
from arch/arm64/include/asm/bitops.h:37,
from include/linux/bitops.h:19,
from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/preempt.h:11,
from include/linux/spinlock.h:51,
from include/linux/vmalloc.h:5,
from mm/vmalloc.c:11:
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'find_vmap_area' at mm/vmalloc.c:1519:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
In file included from include/linux/spinlock.h:82:
mm/vmalloc.c: In function 'find_vmap_area':
mm/vmalloc.c:557:24: note: object 'vmap_area_lock' of size 4
557 | static DEFINE_SPINLOCK(vmap_area_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'find_vmap_area' at mm/vmalloc.c:1519:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
mm/vmalloc.c: In function 'find_vmap_area':
mm/vmalloc.c:557:24: note: object 'vmap_area_lock' of size 4
557 | static DEFINE_SPINLOCK(vmap_area_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'setup_vmalloc_vm' at mm/vmalloc.c:2111:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
mm/vmalloc.c: In function 'setup_vmalloc_vm':
mm/vmalloc.c:557:24: note: object 'vmap_area_lock' of size 4
557 | static DEFINE_SPINLOCK(vmap_area_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
inlined from 'queued_spin_lock' at include/asm-generic/qspinlock.h:85:8,
inlined from 'do_raw_spin_lock' at include/linux/spinlock.h:180:2,
inlined from '__raw_spin_lock' at include/linux/spinlock_api_smp.h:143:2,
inlined from 'spin_lock' at include/linux/spinlock.h:329:2,
inlined from 'setup_vmalloc_vm' at mm/vmalloc.c:2111:2:
arch/arm64/include/asm/atomic_ll_sc.h:259:9: warning: array subscript 'long unsigned int[0]' is partly outside array bounds of 'spinlock_t[1]' {aka 'struct spinlock[1]'} [-Warray-bounds=]
259 | asm volatile( \
| ^~~
arch/arm64/include/asm/atomic_ll_sc.h:283:1: note: in expansion of macro '__CMPXCHG_CASE'
283 | __CMPXCHG_CASE(w, , acq_4, , a, , "memory")
| ^~~~~~~~~~~~~~
mm/vmalloc.c: In function 'setup_vmalloc_vm':
mm/vmalloc.c:557:24: note: object 'vmap_area_lock' of size 4
557 | static DEFINE_SPINLOCK(vmap_area_lock);
| ^~~~~~~~~~~~~~
include/linux/spinlock_types.h:81:44: note: in definition of macro 'DEFINE_SPINLOCK'
81 | #define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
| ^
In function '__cmpxchg_case_acq_4',
inlined from '__cmpxchg_acq' at arch/arm64/include/asm/cmpxchg.h:141:1,
vim +/start +217 mm/vmalloc.c
004cface9c1c0b Nicholas Piggin 2021-10-29 211
3eb01faed2ebb2 Nicholas Piggin 2021-10-29 212 static int vmap_range_noflush(unsigned long addr, unsigned long end,
004cface9c1c0b Nicholas Piggin 2021-10-29 213 phys_addr_t phys_addr, pgprot_t prot,
004cface9c1c0b Nicholas Piggin 2021-10-29 214 unsigned int max_page_shift)
004cface9c1c0b Nicholas Piggin 2021-10-29 215 {
004cface9c1c0b Nicholas Piggin 2021-10-29 216 pgd_t *pgd;
004cface9c1c0b Nicholas Piggin 2021-10-29 @217 unsigned long start;
004cface9c1c0b Nicholas Piggin 2021-10-29 218 unsigned long next;
004cface9c1c0b Nicholas Piggin 2021-10-29 219 int err;
004cface9c1c0b Nicholas Piggin 2021-10-29 220
004cface9c1c0b Nicholas Piggin 2021-10-29 221 might_sleep();
004cface9c1c0b Nicholas Piggin 2021-10-29 222 BUG_ON(addr >= end);
004cface9c1c0b Nicholas Piggin 2021-10-29 223
004cface9c1c0b Nicholas Piggin 2021-10-29 224 start = addr;
004cface9c1c0b Nicholas Piggin 2021-10-29 225 pgd = pgd_offset_k(addr);
004cface9c1c0b Nicholas Piggin 2021-10-29 226 do {
004cface9c1c0b Nicholas Piggin 2021-10-29 227 next = pgd_addr_end(addr, end);
004cface9c1c0b Nicholas Piggin 2021-10-29 228 err = vmap_p4d_range(pgd, addr, next, phys_addr, prot, max_page_shift);
004cface9c1c0b Nicholas Piggin 2021-10-29 229 if (err)
004cface9c1c0b Nicholas Piggin 2021-10-29 230 break;
004cface9c1c0b Nicholas Piggin 2021-10-29 231 } while (pgd++, phys_addr += (next - addr), addr = next, addr != end);
004cface9c1c0b Nicholas Piggin 2021-10-29 232
3eb01faed2ebb2 Nicholas Piggin 2021-10-29 233 return err;
3eb01faed2ebb2 Nicholas Piggin 2021-10-29 234 }
3eb01faed2ebb2 Nicholas Piggin 2021-10-29 235
:::::: The code at line 217 was first introduced by commit
:::::: 004cface9c1c0b6351473934a4ce452193e05b07 mm: Move vmap_range from mm/ioremap.c to mm/vmalloc.c
:::::: TO: Nicholas Piggin <npiggin(a)gmail.com>
:::::: CC: Yang Yingliang <yangyingliang(a)huawei.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0

[openeuler:openEuler-1.0-LTS 1782/1782] mm/memory_hotplug.c:926:16: warning: unused variable 'start_pfn'
by kernel test robot 16 Sep '25
by kernel test robot 16 Sep '25
16 Sep '25
Hi Michal,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head: 8975e9a49fdd2f6402cc5fe68bc08d3c2b7a35a5
commit: 2f5f99f3efc5d34c37f9918c50808a4cfe36c211 [1782/1782] mm: handle uninitialized numa nodes gracefully
config: arm64-randconfig-001-20250915 (https://download.01.org/0day-ci/archive/20250916/202509160041.xVp7j0qx-lkp@…)
compiler: aarch64-linux-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250916/202509160041.xVp7j0qx-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/202509160041.xVp7j0qx-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/memory_hotplug.c: In function '__remove_section':
mm/memory_hotplug.c:481:16: warning: variable 'start_pfn' set but not used [-Wunused-but-set-variable]
unsigned long start_pfn;
^~~~~~~~~
mm/memory_hotplug.c: In function 'hotadd_init_pgdat':
>> mm/memory_hotplug.c:926:16: warning: unused variable 'start_pfn' [-Wunused-variable]
unsigned long start_pfn = PFN_DOWN(start);
^~~~~~~~~
At top level:
>> mm/memory_hotplug.c:971:13: warning: 'rollback_node_hotadd' defined but not used [-Wunused-function]
static void rollback_node_hotadd(int nid)
^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/migrate.h:6,
from mm/memory_hotplug.c:27:
include/linux/mempolicy.h:329:13: warning: '__do_mbind' defined but not used [-Wunused-function]
static long __do_mbind(unsigned long start, unsigned long len,
^~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for HARDLOCKUP_DETECTOR
Depends on [n]: DEBUG_KERNEL [=n] && !S390 && (HAVE_HARDLOCKUP_DETECTOR_PERF [=n] || HAVE_HARDLOCKUP_DETECTOR_ARCH [=y])
Selected by [y]:
- SDEI_WATCHDOG [=y] && <choice> && ARM_SDE_INTERFACE [=y] && !HARDLOCKUP_CHECK_TIMESTAMP [=n]
vim +/start_pfn +926 mm/memory_hotplug.c
0bd85420087389 Tang Chen 2014-11-13 921
e13193319d3a55 Hidetoshi Seto 2009-11-17 922 /* we are OK calling __meminit stuff here - we have CONFIG_MEMORY_HOTPLUG */
2f5f99f3efc5d3 Michal Hocko 2023-11-08 923 static pg_data_t __ref *hotadd_init_pgdat(int nid, u64 start)
9af3c2dea3a3ae Yasunori Goto 2006-06-27 924 {
9af3c2dea3a3ae Yasunori Goto 2006-06-27 925 struct pglist_data *pgdat;
c8e861a531b019 Fabian Frederick 2014-06-04 @926 unsigned long start_pfn = PFN_DOWN(start);
9af3c2dea3a3ae Yasunori Goto 2006-06-27 927
a1e565aa3cfc7c Tang Chen 2013-02-22 928 pgdat = NODE_DATA(nid);
9af3c2dea3a3ae Yasunori Goto 2006-06-27 929
2f5f99f3efc5d3 Michal Hocko 2023-11-08 930 /*
2f5f99f3efc5d3 Michal Hocko 2023-11-08 931 * NODE_DATA is preallocated (free_area_init) but its internal
2f5f99f3efc5d3 Michal Hocko 2023-11-08 932 * state is not allocated completely. Add missing pieces.
2f5f99f3efc5d3 Michal Hocko 2023-11-08 933 * Completely offline nodes stay around and they just need
2f5f99f3efc5d3 Michal Hocko 2023-11-08 934 * reintialization.
2f5f99f3efc5d3 Michal Hocko 2023-11-08 935 */
2f5f99f3efc5d3 Michal Hocko 2023-11-08 936 if (pgdat->per_cpu_nodestats == &boot_nodestats) {
b0dc3a342af36f Gu Zheng 2015-03-25 937 } else {
e716f2eb24defb Mel Gorman 2017-05-03 938 /*
e716f2eb24defb Mel Gorman 2017-05-03 939 * Reset the nr_zones, order and classzone_idx before reuse.
e716f2eb24defb Mel Gorman 2017-05-03 940 * Note that kswapd will init kswapd_classzone_idx properly
e716f2eb24defb Mel Gorman 2017-05-03 941 * when it starts in the near future.
e716f2eb24defb Mel Gorman 2017-05-03 942 */
b0dc3a342af36f Gu Zheng 2015-03-25 943 pgdat->nr_zones = 0;
38087d9b036098 Mel Gorman 2016-07-28 944 pgdat->kswapd_order = 0;
38087d9b036098 Mel Gorman 2016-07-28 945 pgdat->kswapd_classzone_idx = 0;
a1e565aa3cfc7c Tang Chen 2013-02-22 946 }
9af3c2dea3a3ae Yasunori Goto 2006-06-27 947
2f5f99f3efc5d3 Michal Hocko 2023-11-08 948 pgdat->node_start_pfn = 0;
03e85f9d5f1f8c Oscar Salvador 2018-08-21 949
9af3c2dea3a3ae Yasunori Goto 2006-06-27 950 /* init node's zones as empty zones, we don't have any present pages.*/
03e85f9d5f1f8c Oscar Salvador 2018-08-21 951 free_area_init_core_hotplug(nid);
5830169f47269f Reza Arbab 2016-08-11 952 pgdat->per_cpu_nodestats = alloc_percpu(struct per_cpu_nodestat);
9af3c2dea3a3ae Yasunori Goto 2006-06-27 953
959ecc48fc7506 KAMEZAWA Hiroyuki 2011-06-15 954 /*
959ecc48fc7506 KAMEZAWA Hiroyuki 2011-06-15 955 * The node we allocated has no zone fallback lists. For avoiding
959ecc48fc7506 KAMEZAWA Hiroyuki 2011-06-15 956 * to access not-initialized zonelist, build here.
959ecc48fc7506 KAMEZAWA Hiroyuki 2011-06-15 957 */
72675e131eb418 Michal Hocko 2017-09-06 958 build_all_zonelists(pgdat);
959ecc48fc7506 KAMEZAWA Hiroyuki 2011-06-15 959
0bd85420087389 Tang Chen 2014-11-13 960 /*
0bd85420087389 Tang Chen 2014-11-13 961 * When memory is hot-added, all the memory is in offline state. So
0bd85420087389 Tang Chen 2014-11-13 962 * clear all zones' present_pages because they will be updated in
0bd85420087389 Tang Chen 2014-11-13 963 * online_pages() and offline_pages().
0bd85420087389 Tang Chen 2014-11-13 964 */
03e85f9d5f1f8c Oscar Salvador 2018-08-21 965 reset_node_managed_pages(pgdat);
0bd85420087389 Tang Chen 2014-11-13 966 reset_node_present_pages(pgdat);
0bd85420087389 Tang Chen 2014-11-13 967
9af3c2dea3a3ae Yasunori Goto 2006-06-27 968 return pgdat;
9af3c2dea3a3ae Yasunori Goto 2006-06-27 969 }
9af3c2dea3a3ae Yasunori Goto 2006-06-27 970
b9ff036082cd17 Oscar Salvador 2018-08-17 @971 static void rollback_node_hotadd(int nid)
9af3c2dea3a3ae Yasunori Goto 2006-06-27 972 {
b9ff036082cd17 Oscar Salvador 2018-08-17 973 pg_data_t *pgdat = NODE_DATA(nid);
b9ff036082cd17 Oscar Salvador 2018-08-17 974
9af3c2dea3a3ae Yasunori Goto 2006-06-27 975 arch_refresh_nodedata(nid, NULL);
5830169f47269f Reza Arbab 2016-08-11 976 free_percpu(pgdat->per_cpu_nodestats);
9af3c2dea3a3ae Yasunori Goto 2006-06-27 977 arch_free_nodedata(pgdat);
9af3c2dea3a3ae Yasunori Goto 2006-06-27 978 return;
9af3c2dea3a3ae Yasunori Goto 2006-06-27 979 }
9af3c2dea3a3ae Yasunori Goto 2006-06-27 980
:::::: The code at line 926 was first introduced by commit
:::::: c8e861a531b0199dc6ef9e402e29c474dfa507ce mm/memory_hotplug.c: use PFN_DOWN()
:::::: TO: Fabian Frederick <fabf(a)skynet.be>
:::::: CC: Linus Torvalds <torvalds(a)linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0