tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: b29482fde649c72441d5478a4ea2c52c56d97a5e commit: a17becc112535b912f2165f80a98c21b59655119 s390/zcrypt: extend EP11 card and queue sysfs attributes config: s390-randconfig-m031-20200611 (attached as .config) compiler: s390-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: drivers/s390/crypto/zcrypt_cex4.c:251 ep11_card_op_modes_show() warn: should '(1 << ep11_op_modes[i]->mode_bit)' be a 64 bit type? drivers/s390/crypto/zcrypt_cex4.c:346 ep11_queue_op_modes_show() warn: should '(1 << ep11_op_modes[i]->mode_bit)' be a 64 bit type? # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a17becc112535b912f2165f80a98c21b59655119 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git remote update linus git checkout a17becc112535b912f2165f80a98c21b59655119 vim +251 drivers/s390/crypto/zcrypt_cex4.c a17becc112535b Harald Freudenberger 2019-08-30 237 static ssize_t ep11_card_op_modes_show(struct device *dev, a17becc112535b Harald Freudenberger 2019-08-30 238 struct device_attribute *attr, a17becc112535b Harald Freudenberger 2019-08-30 239 char *buf) a17becc112535b Harald Freudenberger 2019-08-30 240 { a17becc112535b Harald Freudenberger 2019-08-30 241 int i, n = 0; a17becc112535b Harald Freudenberger 2019-08-30 242 struct ep11_card_info ci; a17becc112535b Harald Freudenberger 2019-08-30 243 struct ap_card *ac = to_ap_card(dev); a17becc112535b Harald Freudenberger 2019-08-30 244 struct zcrypt_card *zc = ac->private; a17becc112535b Harald Freudenberger 2019-08-30 245 a17becc112535b Harald Freudenberger 2019-08-30 246 memset(&ci, 0, sizeof(ci)); a17becc112535b Harald Freudenberger 2019-08-30 247 a17becc112535b Harald Freudenberger 2019-08-30 248 ep11_get_card_info(ac->id, &ci, zc->online); a17becc112535b Harald Freudenberger 2019-08-30 249 a17becc112535b Harald Freudenberger 2019-08-30 250 for (i = 0; ep11_op_modes[i].mode_txt; i++) { a17becc112535b Harald Freudenberger 2019-08-30 @251 if (ci.op_mode & (1 << ep11_op_modes[i].mode_bit)) { ^^^^^^^^^^ This is a u64 type, which suggests that it should be "1ULL << ep11_op_modes[i].mode_bit". a17becc112535b Harald Freudenberger 2019-08-30 252 if (n > 0) a17becc112535b Harald Freudenberger 2019-08-30 253 buf[n++] = ' '; a17becc112535b Harald Freudenberger 2019-08-30 254 n += snprintf(buf + n, PAGE_SIZE - n, a17becc112535b Harald Freudenberger 2019-08-30 255 "%s", ep11_op_modes[i].mode_txt); a17becc112535b Harald Freudenberger 2019-08-30 256 } a17becc112535b Harald Freudenberger 2019-08-30 257 } a17becc112535b Harald Freudenberger 2019-08-30 258 n += snprintf(buf + n, PAGE_SIZE - n, "\n"); a17becc112535b Harald Freudenberger 2019-08-30 259 a17becc112535b Harald Freudenberger 2019-08-30 260 return n; a17becc112535b Harald Freudenberger 2019-08-30 261 } a17becc112535b Harald Freudenberger 2019-08-30 262 a17becc112535b Harald Freudenberger 2019-08-30 263 static struct device_attribute dev_attr_ep11_card_op_modes = a17becc112535b Harald Freudenberger 2019-08-30 264 __ATTR(op_modes, 0444, ep11_card_op_modes_show, NULL); a17becc112535b Harald Freudenberger 2019-08-30 265 a17becc112535b Harald Freudenberger 2019-08-30 266 static struct attribute *ep11_card_attrs[] = { a17becc112535b Harald Freudenberger 2019-08-30 267 &dev_attr_ep11_api_ordinalnr.attr, a17becc112535b Harald Freudenberger 2019-08-30 268 &dev_attr_ep11_fw_version.attr, a17becc112535b Harald Freudenberger 2019-08-30 269 &dev_attr_ep11_serialnr.attr, a17becc112535b Harald Freudenberger 2019-08-30 270 &dev_attr_ep11_card_op_modes.attr, a17becc112535b Harald Freudenberger 2019-08-30 271 NULL, a17becc112535b Harald Freudenberger 2019-08-30 272 }; a17becc112535b Harald Freudenberger 2019-08-30 273 a17becc112535b Harald Freudenberger 2019-08-30 274 static const struct attribute_group ep11_card_attr_grp = { a17becc112535b Harald Freudenberger 2019-08-30 275 .attrs = ep11_card_attrs, a17becc112535b Harald Freudenberger 2019-08-30 276 }; a17becc112535b Harald Freudenberger 2019-08-30 277 a17becc112535b Harald Freudenberger 2019-08-30 278 /* a17becc112535b Harald Freudenberger 2019-08-30 279 * EP11 queue additional device attributes a17becc112535b Harald Freudenberger 2019-08-30 280 */ a17becc112535b Harald Freudenberger 2019-08-30 281 a17becc112535b Harald Freudenberger 2019-08-30 282 static ssize_t ep11_mkvps_show(struct device *dev, a17becc112535b Harald Freudenberger 2019-08-30 283 struct device_attribute *attr, a17becc112535b Harald Freudenberger 2019-08-30 284 char *buf) a17becc112535b Harald Freudenberger 2019-08-30 285 { a17becc112535b Harald Freudenberger 2019-08-30 286 int n = 0; a17becc112535b Harald Freudenberger 2019-08-30 287 struct ep11_domain_info di; a17becc112535b Harald Freudenberger 2019-08-30 288 struct zcrypt_queue *zq = to_ap_queue(dev)->private; a17becc112535b Harald Freudenberger 2019-08-30 289 static const char * const cwk_state[] = { "invalid", "valid" }; a17becc112535b Harald Freudenberger 2019-08-30 290 static const char * const nwk_state[] = { "empty", "uncommitted", a17becc112535b Harald Freudenberger 2019-08-30 291 "committed" }; a17becc112535b Harald Freudenberger 2019-08-30 292 a17becc112535b Harald Freudenberger 2019-08-30 293 memset(&di, 0, sizeof(di)); a17becc112535b Harald Freudenberger 2019-08-30 294 a17becc112535b Harald Freudenberger 2019-08-30 295 if (zq->online) a17becc112535b Harald Freudenberger 2019-08-30 296 ep11_get_domain_info(AP_QID_CARD(zq->queue->qid), a17becc112535b Harald Freudenberger 2019-08-30 297 AP_QID_QUEUE(zq->queue->qid), a17becc112535b Harald Freudenberger 2019-08-30 298 &di); a17becc112535b Harald Freudenberger 2019-08-30 299 a17becc112535b Harald Freudenberger 2019-08-30 300 if (di.cur_wk_state == '0') { a17becc112535b Harald Freudenberger 2019-08-30 301 n = snprintf(buf, PAGE_SIZE, "WK CUR: %s -\n", a17becc112535b Harald Freudenberger 2019-08-30 302 cwk_state[di.cur_wk_state - '0']); a17becc112535b Harald Freudenberger 2019-08-30 303 } else if (di.cur_wk_state == '1') { a17becc112535b Harald Freudenberger 2019-08-30 304 n = snprintf(buf, PAGE_SIZE, "WK CUR: %s 0x", a17becc112535b Harald Freudenberger 2019-08-30 305 cwk_state[di.cur_wk_state - '0']); a17becc112535b Harald Freudenberger 2019-08-30 306 bin2hex(buf + n, di.cur_wkvp, sizeof(di.cur_wkvp)); a17becc112535b Harald Freudenberger 2019-08-30 307 n += 2 * sizeof(di.cur_wkvp); a17becc112535b Harald Freudenberger 2019-08-30 308 n += snprintf(buf + n, PAGE_SIZE - n, "\n"); a17becc112535b Harald Freudenberger 2019-08-30 309 } else a17becc112535b Harald Freudenberger 2019-08-30 310 n = snprintf(buf, PAGE_SIZE, "WK CUR: - -\n"); a17becc112535b Harald Freudenberger 2019-08-30 311 a17becc112535b Harald Freudenberger 2019-08-30 312 if (di.new_wk_state == '0') { a17becc112535b Harald Freudenberger 2019-08-30 313 n += snprintf(buf + n, PAGE_SIZE - n, "WK NEW: %s -\n", a17becc112535b Harald Freudenberger 2019-08-30 314 nwk_state[di.new_wk_state - '0']); a17becc112535b Harald Freudenberger 2019-08-30 315 } else if (di.new_wk_state >= '1' && di.new_wk_state <= '2') { a17becc112535b Harald Freudenberger 2019-08-30 316 n += snprintf(buf + n, PAGE_SIZE - n, "WK NEW: %s 0x", a17becc112535b Harald Freudenberger 2019-08-30 317 nwk_state[di.new_wk_state - '0']); a17becc112535b Harald Freudenberger 2019-08-30 318 bin2hex(buf + n, di.new_wkvp, sizeof(di.new_wkvp)); a17becc112535b Harald Freudenberger 2019-08-30 319 n += 2 * sizeof(di.new_wkvp); a17becc112535b Harald Freudenberger 2019-08-30 320 n += snprintf(buf + n, PAGE_SIZE - n, "\n"); a17becc112535b Harald Freudenberger 2019-08-30 321 } else a17becc112535b Harald Freudenberger 2019-08-30 322 n += snprintf(buf + n, PAGE_SIZE - n, "WK NEW: - -\n"); a17becc112535b Harald Freudenberger 2019-08-30 323 a17becc112535b Harald Freudenberger 2019-08-30 324 return n; a17becc112535b Harald Freudenberger 2019-08-30 325 } a17becc112535b Harald Freudenberger 2019-08-30 326 a17becc112535b Harald Freudenberger 2019-08-30 327 static struct device_attribute dev_attr_ep11_mkvps = a17becc112535b Harald Freudenberger 2019-08-30 328 __ATTR(mkvps, 0444, ep11_mkvps_show, NULL); a17becc112535b Harald Freudenberger 2019-08-30 329 a17becc112535b Harald Freudenberger 2019-08-30 330 static ssize_t ep11_queue_op_modes_show(struct device *dev, a17becc112535b Harald Freudenberger 2019-08-30 331 struct device_attribute *attr, a17becc112535b Harald Freudenberger 2019-08-30 332 char *buf) a17becc112535b Harald Freudenberger 2019-08-30 333 { a17becc112535b Harald Freudenberger 2019-08-30 334 int i, n = 0; a17becc112535b Harald Freudenberger 2019-08-30 335 struct ep11_domain_info di; a17becc112535b Harald Freudenberger 2019-08-30 336 struct zcrypt_queue *zq = to_ap_queue(dev)->private; a17becc112535b Harald Freudenberger 2019-08-30 337 a17becc112535b Harald Freudenberger 2019-08-30 338 memset(&di, 0, sizeof(di)); a17becc112535b Harald Freudenberger 2019-08-30 339 a17becc112535b Harald Freudenberger 2019-08-30 340 if (zq->online) a17becc112535b Harald Freudenberger 2019-08-30 341 ep11_get_domain_info(AP_QID_CARD(zq->queue->qid), a17becc112535b Harald Freudenberger 2019-08-30 342 AP_QID_QUEUE(zq->queue->qid), a17becc112535b Harald Freudenberger 2019-08-30 343 &di); a17becc112535b Harald Freudenberger 2019-08-30 344 a17becc112535b Harald Freudenberger 2019-08-30 345 for (i = 0; ep11_op_modes[i].mode_txt; i++) { a17becc112535b Harald Freudenberger 2019-08-30 @346 if (di.op_mode & (1 << ep11_op_modes[i].mode_bit)) { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Same. a17becc112535b Harald Freudenberger 2019-08-30 347 if (n > 0) a17becc112535b Harald Freudenberger 2019-08-30 348 buf[n++] = ' '; a17becc112535b Harald Freudenberger 2019-08-30 349 n += snprintf(buf + n, PAGE_SIZE - n, a17becc112535b Harald Freudenberger 2019-08-30 350 "%s", ep11_op_modes[i].mode_txt); a17becc112535b Harald Freudenberger 2019-08-30 351 } a17becc112535b Harald Freudenberger 2019-08-30 352 } a17becc112535b Harald Freudenberger 2019-08-30 353 n += snprintf(buf + n, PAGE_SIZE - n, "\n"); a17becc112535b Harald Freudenberger 2019-08-30 354 a17becc112535b Harald Freudenberger 2019-08-30 355 return n; a17becc112535b Harald Freudenberger 2019-08-30 356 } --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org