From: kernel test robot <lkp@intel.com>
To: Dave Jiang <dave.jiang@intel.com>, nvdimm@lists.linux.dev
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
ira.weiny@intel.com, vishal.l.verma@intel.com,
dan.j.williams@intel.com, jonathan.cameron@huawei.com,
s.neeraj@samsung.com
Subject: Re: [PATCH] nvdimm: Introduce guard() for nvdimm_bus_lock
Date: Tue, 23 Sep 2025 09:58:01 +0800 [thread overview]
Message-ID: <202509230941.jMdKMPL8-lkp@intel.com> (raw)
In-Reply-To: <20250922211330.1433044-1-dave.jiang@intel.com>
Hi Dave,
kernel test robot noticed the following build errors:
[auto build test ERROR on 07e27ad16399afcd693be20211b0dfae63e0615f]
url: https://github.com/intel-lab-lkp/linux/commits/Dave-Jiang/nvdimm-Introduce-guard-for-nvdimm_bus_lock/20250923-051440
base: 07e27ad16399afcd693be20211b0dfae63e0615f
patch link: https://lore.kernel.org/r/20250922211330.1433044-1-dave.jiang%40intel.com
patch subject: [PATCH] nvdimm: Introduce guard() for nvdimm_bus_lock
config: x86_64-buildonly-randconfig-006-20250923 (https://download.01.org/0day-ci/archive/20250923/202509230941.jMdKMPL8-lkp@intel.com/config)
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/20250923/202509230941.jMdKMPL8-lkp@intel.com/reproduce)
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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509230941.jMdKMPL8-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/nvdimm/bus.c:1175:3: error: cannot jump from this goto statement to its label
1175 | goto out;
| ^
drivers/nvdimm/bus.c:1179:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
1179 | guard(nvdimm_bus)(dev);
| ^
include/linux/cleanup.h:401:15: note: expanded from macro 'guard'
401 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:166:29: note: expanded from macro '__UNIQUE_ID'
166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
| ^
include/linux/compiler_types.h:84:22: note: expanded from macro '__PASTE'
84 | #define __PASTE(a,b) ___PASTE(a,b)
| ^
include/linux/compiler_types.h:83:23: note: expanded from macro '___PASTE'
83 | #define ___PASTE(a,b) a##b
| ^
<scratch space>:93:1: note: expanded from here
93 | __UNIQUE_ID_guard458
| ^
drivers/nvdimm/bus.c:1178:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
1178 | guard(device)(dev);
| ^
include/linux/cleanup.h:401:15: note: expanded from macro 'guard'
401 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:166:29: note: expanded from macro '__UNIQUE_ID'
166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
| ^
include/linux/compiler_types.h:84:22: note: expanded from macro '__PASTE'
84 | #define __PASTE(a,b) ___PASTE(a,b)
| ^
include/linux/compiler_types.h:83:23: note: expanded from macro '___PASTE'
83 | #define ___PASTE(a,b) a##b
| ^
<scratch space>:84:1: note: expanded from here
84 | __UNIQUE_ID_guard457
| ^
drivers/nvdimm/bus.c:1170:3: error: cannot jump from this goto statement to its label
1170 | goto out;
| ^
drivers/nvdimm/bus.c:1179:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
1179 | guard(nvdimm_bus)(dev);
| ^
include/linux/cleanup.h:401:15: note: expanded from macro 'guard'
401 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:166:29: note: expanded from macro '__UNIQUE_ID'
166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
| ^
include/linux/compiler_types.h:84:22: note: expanded from macro '__PASTE'
84 | #define __PASTE(a,b) ___PASTE(a,b)
| ^
include/linux/compiler_types.h:83:23: note: expanded from macro '___PASTE'
83 | #define ___PASTE(a,b) a##b
| ^
<scratch space>:93:1: note: expanded from here
93 | __UNIQUE_ID_guard458
| ^
drivers/nvdimm/bus.c:1178:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
1178 | guard(device)(dev);
| ^
include/linux/cleanup.h:401:15: note: expanded from macro 'guard'
401 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:166:29: note: expanded from macro '__UNIQUE_ID'
166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
| ^
include/linux/compiler_types.h:84:22: note: expanded from macro '__PASTE'
84 | #define __PASTE(a,b) ___PASTE(a,b)
| ^
include/linux/compiler_types.h:83:23: note: expanded from macro '___PASTE'
83 | #define ___PASTE(a,b) a##b
| ^
<scratch space>:84:1: note: expanded from here
84 | __UNIQUE_ID_guard457
| ^
drivers/nvdimm/bus.c:1164:3: error: cannot jump from this goto statement to its label
1164 | goto out;
| ^
drivers/nvdimm/bus.c:1179:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
1179 | guard(nvdimm_bus)(dev);
| ^
include/linux/cleanup.h:401:15: note: expanded from macro 'guard'
401 | CLASS(_name, __UNIQUE_ID(guard))
| ^
include/linux/compiler.h:166:29: note: expanded from macro '__UNIQUE_ID'
166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
| ^
include/linux/compiler_types.h:84:22: note: expanded from macro '__PASTE'
84 | #define __PASTE(a,b) ___PASTE(a,b)
| ^
include/linux/compiler_types.h:83:23: note: expanded from macro '___PASTE'
83 | #define ___PASTE(a,b) a##b
| ^
<scratch space>:93:1: note: expanded from here
93 | __UNIQUE_ID_guard458
| ^
drivers/nvdimm/bus.c:1178:2: note: jump bypasses initialization of variable with __attribute__((cleanup))
1178 | guard(device)(dev);
vim +1175 drivers/nvdimm/bus.c
eaf961536e1622 Dan Williams 2015-05-01 1023
62232e45f4a265 Dan Williams 2015-06-08 1024 static int __nd_ioctl(struct nvdimm_bus *nvdimm_bus, struct nvdimm *nvdimm,
62232e45f4a265 Dan Williams 2015-06-08 1025 int read_only, unsigned int ioctl_cmd, unsigned long arg)
62232e45f4a265 Dan Williams 2015-06-08 1026 {
62232e45f4a265 Dan Williams 2015-06-08 1027 struct nvdimm_bus_descriptor *nd_desc = nvdimm_bus->nd_desc;
62232e45f4a265 Dan Williams 2015-06-08 1028 const struct nd_cmd_desc *desc = NULL;
62232e45f4a265 Dan Williams 2015-06-08 1029 unsigned int cmd = _IOC_NR(ioctl_cmd);
62232e45f4a265 Dan Williams 2015-06-08 1030 struct device *dev = &nvdimm_bus->dev;
58738c495e15ba Dan Williams 2017-08-31 1031 void __user *p = (void __user *) arg;
6de5d06e657acd Dan Williams 2019-07-17 1032 char *out_env = NULL, *in_env = NULL;
62232e45f4a265 Dan Williams 2015-06-08 1033 const char *cmd_name, *dimm_name;
58738c495e15ba Dan Williams 2017-08-31 1034 u32 in_len = 0, out_len = 0;
58738c495e15ba Dan Williams 2017-08-31 1035 unsigned int func = cmd;
e3654eca70d637 Dan Williams 2016-04-28 1036 unsigned long cmd_mask;
58738c495e15ba Dan Williams 2017-08-31 1037 struct nd_cmd_pkg pkg;
006358b35c73ab Dave Jiang 2017-04-07 1038 int rc, i, cmd_rc;
6de5d06e657acd Dan Williams 2019-07-17 1039 void *buf = NULL;
58738c495e15ba Dan Williams 2017-08-31 1040 u64 buf_len = 0;
62232e45f4a265 Dan Williams 2015-06-08 1041
62232e45f4a265 Dan Williams 2015-06-08 1042 if (nvdimm) {
62232e45f4a265 Dan Williams 2015-06-08 1043 desc = nd_cmd_dimm_desc(cmd);
62232e45f4a265 Dan Williams 2015-06-08 1044 cmd_name = nvdimm_cmd_name(cmd);
e3654eca70d637 Dan Williams 2016-04-28 1045 cmd_mask = nvdimm->cmd_mask;
62232e45f4a265 Dan Williams 2015-06-08 1046 dimm_name = dev_name(&nvdimm->dev);
62232e45f4a265 Dan Williams 2015-06-08 1047 } else {
62232e45f4a265 Dan Williams 2015-06-08 1048 desc = nd_cmd_bus_desc(cmd);
62232e45f4a265 Dan Williams 2015-06-08 1049 cmd_name = nvdimm_bus_cmd_name(cmd);
e3654eca70d637 Dan Williams 2016-04-28 1050 cmd_mask = nd_desc->cmd_mask;
62232e45f4a265 Dan Williams 2015-06-08 1051 dimm_name = "bus";
62232e45f4a265 Dan Williams 2015-06-08 1052 }
62232e45f4a265 Dan Williams 2015-06-08 1053
92fe2aa859f52c Dan Williams 2020-07-20 1054 /* Validate command family support against bus declared support */
31eca76ba2fc98 Dan Williams 2016-04-28 1055 if (cmd == ND_CMD_CALL) {
92fe2aa859f52c Dan Williams 2020-07-20 1056 unsigned long *mask;
92fe2aa859f52c Dan Williams 2020-07-20 1057
31eca76ba2fc98 Dan Williams 2016-04-28 1058 if (copy_from_user(&pkg, p, sizeof(pkg)))
31eca76ba2fc98 Dan Williams 2016-04-28 1059 return -EFAULT;
92fe2aa859f52c Dan Williams 2020-07-20 1060
92fe2aa859f52c Dan Williams 2020-07-20 1061 if (nvdimm) {
92fe2aa859f52c Dan Williams 2020-07-20 1062 if (pkg.nd_family > NVDIMM_FAMILY_MAX)
92fe2aa859f52c Dan Williams 2020-07-20 1063 return -EINVAL;
92fe2aa859f52c Dan Williams 2020-07-20 1064 mask = &nd_desc->dimm_family_mask;
92fe2aa859f52c Dan Williams 2020-07-20 1065 } else {
92fe2aa859f52c Dan Williams 2020-07-20 1066 if (pkg.nd_family > NVDIMM_BUS_FAMILY_MAX)
92fe2aa859f52c Dan Williams 2020-07-20 1067 return -EINVAL;
92fe2aa859f52c Dan Williams 2020-07-20 1068 mask = &nd_desc->bus_family_mask;
92fe2aa859f52c Dan Williams 2020-07-20 1069 }
92fe2aa859f52c Dan Williams 2020-07-20 1070
92fe2aa859f52c Dan Williams 2020-07-20 1071 if (!test_bit(pkg.nd_family, mask))
92fe2aa859f52c Dan Williams 2020-07-20 1072 return -EINVAL;
31eca76ba2fc98 Dan Williams 2016-04-28 1073 }
31eca76ba2fc98 Dan Williams 2016-04-28 1074
f84afbdd3a9e5e Dan Carpenter 2020-02-25 1075 if (!desc ||
f84afbdd3a9e5e Dan Carpenter 2020-02-25 1076 (desc->out_num + desc->in_num == 0) ||
f84afbdd3a9e5e Dan Carpenter 2020-02-25 1077 cmd > ND_CMD_CALL ||
e3654eca70d637 Dan Williams 2016-04-28 1078 !test_bit(cmd, &cmd_mask))
62232e45f4a265 Dan Williams 2015-06-08 1079 return -ENOTTY;
62232e45f4a265 Dan Williams 2015-06-08 1080
62232e45f4a265 Dan Williams 2015-06-08 1081 /* fail write commands (when read-only) */
62232e45f4a265 Dan Williams 2015-06-08 1082 if (read_only)
07accfa9d1a8ba Jerry Hoemann 2016-01-06 1083 switch (cmd) {
07accfa9d1a8ba Jerry Hoemann 2016-01-06 1084 case ND_CMD_VENDOR:
07accfa9d1a8ba Jerry Hoemann 2016-01-06 1085 case ND_CMD_SET_CONFIG_DATA:
07accfa9d1a8ba Jerry Hoemann 2016-01-06 1086 case ND_CMD_ARS_START:
d4f323672aa637 Dan Williams 2016-03-03 1087 case ND_CMD_CLEAR_ERROR:
31eca76ba2fc98 Dan Williams 2016-04-28 1088 case ND_CMD_CALL:
ca6bf264f6d856 Dan Williams 2019-07-17 1089 dev_dbg(dev, "'%s' command while read-only.\n",
62232e45f4a265 Dan Williams 2015-06-08 1090 nvdimm ? nvdimm_cmd_name(cmd)
62232e45f4a265 Dan Williams 2015-06-08 1091 : nvdimm_bus_cmd_name(cmd));
62232e45f4a265 Dan Williams 2015-06-08 1092 return -EPERM;
62232e45f4a265 Dan Williams 2015-06-08 1093 default:
62232e45f4a265 Dan Williams 2015-06-08 1094 break;
62232e45f4a265 Dan Williams 2015-06-08 1095 }
62232e45f4a265 Dan Williams 2015-06-08 1096
62232e45f4a265 Dan Williams 2015-06-08 1097 /* process an input envelope */
6de5d06e657acd Dan Williams 2019-07-17 1098 in_env = kzalloc(ND_CMD_MAX_ENVELOPE, GFP_KERNEL);
6de5d06e657acd Dan Williams 2019-07-17 1099 if (!in_env)
6de5d06e657acd Dan Williams 2019-07-17 1100 return -ENOMEM;
62232e45f4a265 Dan Williams 2015-06-08 1101 for (i = 0; i < desc->in_num; i++) {
62232e45f4a265 Dan Williams 2015-06-08 1102 u32 in_size, copy;
62232e45f4a265 Dan Williams 2015-06-08 1103
62232e45f4a265 Dan Williams 2015-06-08 1104 in_size = nd_cmd_in_size(nvdimm, cmd, desc, i, in_env);
62232e45f4a265 Dan Williams 2015-06-08 1105 if (in_size == UINT_MAX) {
62232e45f4a265 Dan Williams 2015-06-08 1106 dev_err(dev, "%s:%s unknown input size cmd: %s field: %d\n",
62232e45f4a265 Dan Williams 2015-06-08 1107 __func__, dimm_name, cmd_name, i);
6de5d06e657acd Dan Williams 2019-07-17 1108 rc = -ENXIO;
6de5d06e657acd Dan Williams 2019-07-17 1109 goto out;
45def22c1fab85 Dan Williams 2015-04-26 1110 }
6de5d06e657acd Dan Williams 2019-07-17 1111 if (in_len < ND_CMD_MAX_ENVELOPE)
6de5d06e657acd Dan Williams 2019-07-17 1112 copy = min_t(u32, ND_CMD_MAX_ENVELOPE - in_len, in_size);
62232e45f4a265 Dan Williams 2015-06-08 1113 else
62232e45f4a265 Dan Williams 2015-06-08 1114 copy = 0;
6de5d06e657acd Dan Williams 2019-07-17 1115 if (copy && copy_from_user(&in_env[in_len], p + in_len, copy)) {
6de5d06e657acd Dan Williams 2019-07-17 1116 rc = -EFAULT;
6de5d06e657acd Dan Williams 2019-07-17 1117 goto out;
6de5d06e657acd Dan Williams 2019-07-17 1118 }
62232e45f4a265 Dan Williams 2015-06-08 1119 in_len += in_size;
62232e45f4a265 Dan Williams 2015-06-08 1120 }
62232e45f4a265 Dan Williams 2015-06-08 1121
31eca76ba2fc98 Dan Williams 2016-04-28 1122 if (cmd == ND_CMD_CALL) {
53b85a449b15e0 Jerry Hoemann 2017-06-30 1123 func = pkg.nd_command;
426824d63b77bd Dan Williams 2018-03-05 1124 dev_dbg(dev, "%s, idx: %llu, in: %u, out: %u, len %llu\n",
426824d63b77bd Dan Williams 2018-03-05 1125 dimm_name, pkg.nd_command,
31eca76ba2fc98 Dan Williams 2016-04-28 1126 in_len, out_len, buf_len);
31eca76ba2fc98 Dan Williams 2016-04-28 1127 }
31eca76ba2fc98 Dan Williams 2016-04-28 1128
62232e45f4a265 Dan Williams 2015-06-08 1129 /* process an output envelope */
6de5d06e657acd Dan Williams 2019-07-17 1130 out_env = kzalloc(ND_CMD_MAX_ENVELOPE, GFP_KERNEL);
6de5d06e657acd Dan Williams 2019-07-17 1131 if (!out_env) {
6de5d06e657acd Dan Williams 2019-07-17 1132 rc = -ENOMEM;
6de5d06e657acd Dan Williams 2019-07-17 1133 goto out;
6de5d06e657acd Dan Williams 2019-07-17 1134 }
6de5d06e657acd Dan Williams 2019-07-17 1135
62232e45f4a265 Dan Williams 2015-06-08 1136 for (i = 0; i < desc->out_num; i++) {
62232e45f4a265 Dan Williams 2015-06-08 1137 u32 out_size = nd_cmd_out_size(nvdimm, cmd, desc, i,
efda1b5d87cbc3 Dan Williams 2016-12-06 1138 (u32 *) in_env, (u32 *) out_env, 0);
62232e45f4a265 Dan Williams 2015-06-08 1139 u32 copy;
62232e45f4a265 Dan Williams 2015-06-08 1140
62232e45f4a265 Dan Williams 2015-06-08 1141 if (out_size == UINT_MAX) {
426824d63b77bd Dan Williams 2018-03-05 1142 dev_dbg(dev, "%s unknown output size cmd: %s field: %d\n",
426824d63b77bd Dan Williams 2018-03-05 1143 dimm_name, cmd_name, i);
6de5d06e657acd Dan Williams 2019-07-17 1144 rc = -EFAULT;
6de5d06e657acd Dan Williams 2019-07-17 1145 goto out;
62232e45f4a265 Dan Williams 2015-06-08 1146 }
6de5d06e657acd Dan Williams 2019-07-17 1147 if (out_len < ND_CMD_MAX_ENVELOPE)
6de5d06e657acd Dan Williams 2019-07-17 1148 copy = min_t(u32, ND_CMD_MAX_ENVELOPE - out_len, out_size);
62232e45f4a265 Dan Williams 2015-06-08 1149 else
62232e45f4a265 Dan Williams 2015-06-08 1150 copy = 0;
62232e45f4a265 Dan Williams 2015-06-08 1151 if (copy && copy_from_user(&out_env[out_len],
6de5d06e657acd Dan Williams 2019-07-17 1152 p + in_len + out_len, copy)) {
6de5d06e657acd Dan Williams 2019-07-17 1153 rc = -EFAULT;
6de5d06e657acd Dan Williams 2019-07-17 1154 goto out;
6de5d06e657acd Dan Williams 2019-07-17 1155 }
62232e45f4a265 Dan Williams 2015-06-08 1156 out_len += out_size;
62232e45f4a265 Dan Williams 2015-06-08 1157 }
62232e45f4a265 Dan Williams 2015-06-08 1158
58738c495e15ba Dan Williams 2017-08-31 1159 buf_len = (u64) out_len + (u64) in_len;
62232e45f4a265 Dan Williams 2015-06-08 1160 if (buf_len > ND_IOCTL_MAX_BUFLEN) {
426824d63b77bd Dan Williams 2018-03-05 1161 dev_dbg(dev, "%s cmd: %s buf_len: %llu > %d\n", dimm_name,
426824d63b77bd Dan Williams 2018-03-05 1162 cmd_name, buf_len, ND_IOCTL_MAX_BUFLEN);
6de5d06e657acd Dan Williams 2019-07-17 1163 rc = -EINVAL;
6de5d06e657acd Dan Williams 2019-07-17 1164 goto out;
62232e45f4a265 Dan Williams 2015-06-08 1165 }
62232e45f4a265 Dan Williams 2015-06-08 1166
62232e45f4a265 Dan Williams 2015-06-08 1167 buf = vmalloc(buf_len);
6de5d06e657acd Dan Williams 2019-07-17 1168 if (!buf) {
6de5d06e657acd Dan Williams 2019-07-17 1169 rc = -ENOMEM;
6de5d06e657acd Dan Williams 2019-07-17 1170 goto out;
6de5d06e657acd Dan Williams 2019-07-17 1171 }
62232e45f4a265 Dan Williams 2015-06-08 1172
62232e45f4a265 Dan Williams 2015-06-08 1173 if (copy_from_user(buf, p, buf_len)) {
62232e45f4a265 Dan Williams 2015-06-08 1174 rc = -EFAULT;
62232e45f4a265 Dan Williams 2015-06-08 @1175 goto out;
62232e45f4a265 Dan Williams 2015-06-08 1176 }
62232e45f4a265 Dan Williams 2015-06-08 1177
eb0e82bc5f69da Dave Jiang 2025-09-22 1178 guard(device)(dev);
eb0e82bc5f69da Dave Jiang 2025-09-22 1179 guard(nvdimm_bus)(dev);
53b85a449b15e0 Jerry Hoemann 2017-06-30 1180 rc = nd_cmd_clear_to_send(nvdimm_bus, nvdimm, func, buf);
eaf961536e1622 Dan Williams 2015-05-01 1181 if (rc)
eb0e82bc5f69da Dave Jiang 2025-09-22 1182 goto out;
eaf961536e1622 Dan Williams 2015-05-01 1183
006358b35c73ab Dave Jiang 2017-04-07 1184 rc = nd_desc->ndctl(nd_desc, nvdimm, cmd, buf, buf_len, &cmd_rc);
62232e45f4a265 Dan Williams 2015-06-08 1185 if (rc < 0)
eb0e82bc5f69da Dave Jiang 2025-09-22 1186 goto out;
006358b35c73ab Dave Jiang 2017-04-07 1187
006358b35c73ab Dave Jiang 2017-04-07 1188 if (!nvdimm && cmd == ND_CMD_CLEAR_ERROR && cmd_rc >= 0) {
006358b35c73ab Dave Jiang 2017-04-07 1189 struct nd_cmd_clear_error *clear_err = buf;
006358b35c73ab Dave Jiang 2017-04-07 1190
23f4984483623c Dan Williams 2017-04-29 1191 nvdimm_account_cleared_poison(nvdimm_bus, clear_err->address,
006358b35c73ab Dave Jiang 2017-04-07 1192 clear_err->cleared);
006358b35c73ab Dave Jiang 2017-04-07 1193 }
0beb2012a17226 Dan Williams 2017-04-07 1194
62232e45f4a265 Dan Williams 2015-06-08 1195 if (copy_to_user(p, buf, buf_len))
62232e45f4a265 Dan Williams 2015-06-08 1196 rc = -EFAULT;
0beb2012a17226 Dan Williams 2017-04-07 1197
62232e45f4a265 Dan Williams 2015-06-08 1198 out:
6de5d06e657acd Dan Williams 2019-07-17 1199 kfree(in_env);
6de5d06e657acd Dan Williams 2019-07-17 1200 kfree(out_env);
62232e45f4a265 Dan Williams 2015-06-08 1201 vfree(buf);
62232e45f4a265 Dan Williams 2015-06-08 1202 return rc;
62232e45f4a265 Dan Williams 2015-06-08 1203 }
62232e45f4a265 Dan Williams 2015-06-08 1204
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-09-23 1:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-22 21:13 [PATCH] nvdimm: Introduce guard() for nvdimm_bus_lock Dave Jiang
2025-09-22 22:50 ` dan.j.williams
2025-09-22 23:00 ` Dave Jiang
2025-09-22 23:23 ` dan.j.williams
2025-09-23 1:58 ` kernel test robot [this message]
2025-09-23 10:18 ` Jonathan Cameron
2025-09-23 16:36 ` Dave Jiang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202509230941.jMdKMPL8-lkp@intel.com \
--to=lkp@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=ira.weiny@intel.com \
--cc=jonathan.cameron@huawei.com \
--cc=llvm@lists.linux.dev \
--cc=nvdimm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=s.neeraj@samsung.com \
--cc=vishal.l.verma@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.