From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: [intel-linux-intel-lts:5.10/yocto 107/128] drivers/char/rpmb/rpmb_sim.c:340 rpmb_do_read_data() warn: missing error code 'ret'
Date: Sat, 20 Feb 2021 20:28:56 +0800 [thread overview]
Message-ID: <202102202049.Td03058f-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6624 bytes --]
CC: kbuild-all(a)lists.01.org
TO: Tomas Winkler <tomas.winkler@intel.com>
CC: "Dutta, Ranjan" <ranjan.dutta@intel.com>
CC: Alexander Usyskin <alexander.usyskin@intel.com>
tree: https://github.com/intel/linux-intel-lts.git 5.10/yocto
head: c70201d62e685bc8d8cb5c2115a3f4ef239012cf
commit: 30b688d7b09e8e74598d2d270313b761106e3f84 [107/128] char: rpmb: add RPMB simulation device
:::::: branch date: 2 weeks ago
:::::: commit date: 2 weeks ago
config: h8300-randconfig-m031-20210220 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
smatch warnings:
drivers/char/rpmb/rpmb_sim.c:340 rpmb_do_read_data() warn: missing error code 'ret'
vim +/ret +340 drivers/char/rpmb/rpmb_sim.c
30b688d7b09e8e Tomas Winkler 2016-02-28 304
30b688d7b09e8e Tomas Winkler 2016-02-28 305 static int rpmb_do_read_data(struct rpmb_sim_dev *rsdev,
30b688d7b09e8e Tomas Winkler 2016-02-28 306 struct rpmb_frame_jdec *in_frame, u32 cnt)
30b688d7b09e8e Tomas Winkler 2016-02-28 307 {
30b688d7b09e8e Tomas Winkler 2016-02-28 308 struct rpmb_frame_jdec *res_frame = rsdev->res_frames;
30b688d7b09e8e Tomas Winkler 2016-02-28 309 struct rpmb_frame_jdec *out_frames = NULL;
30b688d7b09e8e Tomas Winkler 2016-02-28 310 u8 mac[32];
30b688d7b09e8e Tomas Winkler 2016-02-28 311 u16 req, err, addr, blks;
30b688d7b09e8e Tomas Winkler 2016-02-28 312 unsigned int i;
30b688d7b09e8e Tomas Winkler 2016-02-28 313 int ret;
30b688d7b09e8e Tomas Winkler 2016-02-28 314
30b688d7b09e8e Tomas Winkler 2016-02-28 315 req = be16_to_cpu(in_frame->req_resp);
30b688d7b09e8e Tomas Winkler 2016-02-28 316 if (req != RPMB_READ_DATA)
30b688d7b09e8e Tomas Winkler 2016-02-28 317 return -EINVAL;
30b688d7b09e8e Tomas Winkler 2016-02-28 318
30b688d7b09e8e Tomas Winkler 2016-02-28 319 /* eMMC intentionally set 0 here */
30b688d7b09e8e Tomas Winkler 2016-02-28 320 blks = be16_to_cpu(in_frame->block_count);
30b688d7b09e8e Tomas Winkler 2016-02-28 321 blks = blks ?: cnt;
30b688d7b09e8e Tomas Winkler 2016-02-28 322 if (blks > cnt) {
30b688d7b09e8e Tomas Winkler 2016-02-28 323 dev_err(rsdev->dev, "wrong number of frames cnt %u\n", blks);
30b688d7b09e8e Tomas Winkler 2016-02-28 324 ret = -EINVAL;
30b688d7b09e8e Tomas Winkler 2016-02-28 325 err = RPMB_ERR_GENERAL;
30b688d7b09e8e Tomas Winkler 2016-02-28 326 goto out;
30b688d7b09e8e Tomas Winkler 2016-02-28 327 }
30b688d7b09e8e Tomas Winkler 2016-02-28 328
30b688d7b09e8e Tomas Winkler 2016-02-28 329 out_frames = kcalloc(blks, sizeof(*out_frames), GFP_KERNEL);
30b688d7b09e8e Tomas Winkler 2016-02-28 330 if (!out_frames) {
30b688d7b09e8e Tomas Winkler 2016-02-28 331 ret = -ENOMEM;
30b688d7b09e8e Tomas Winkler 2016-02-28 332 err = RPMB_ERR_READ;
30b688d7b09e8e Tomas Winkler 2016-02-28 333 goto out;
30b688d7b09e8e Tomas Winkler 2016-02-28 334 }
30b688d7b09e8e Tomas Winkler 2016-02-28 335
30b688d7b09e8e Tomas Winkler 2016-02-28 336 ret = 0;
30b688d7b09e8e Tomas Winkler 2016-02-28 337 addr = be16_to_cpu(in_frame[0].addr);
30b688d7b09e8e Tomas Winkler 2016-02-28 338 if (addr >= rsdev->blkcnt) {
30b688d7b09e8e Tomas Winkler 2016-02-28 339 err = RPMB_ERR_ADDRESS;
30b688d7b09e8e Tomas Winkler 2016-02-28 @340 goto out;
30b688d7b09e8e Tomas Winkler 2016-02-28 341 }
30b688d7b09e8e Tomas Winkler 2016-02-28 342
30b688d7b09e8e Tomas Winkler 2016-02-28 343 if (addr + blks > rsdev->blkcnt) {
30b688d7b09e8e Tomas Winkler 2016-02-28 344 err = RPMB_ERR_READ;
30b688d7b09e8e Tomas Winkler 2016-02-28 345 goto out;
30b688d7b09e8e Tomas Winkler 2016-02-28 346 }
30b688d7b09e8e Tomas Winkler 2016-02-28 347
30b688d7b09e8e Tomas Winkler 2016-02-28 348 dev_dbg(rsdev->dev, "reading = %u blocks at addr = 0x%X\n", blks, addr);
30b688d7b09e8e Tomas Winkler 2016-02-28 349 for (i = 0; i < blks; i++) {
30b688d7b09e8e Tomas Winkler 2016-02-28 350 memcpy(out_frames[i].data, rsdev->da[addr + i].data, BLK_UNIT);
30b688d7b09e8e Tomas Winkler 2016-02-28 351 memcpy(out_frames[i].nonce, in_frame[0].nonce, 16);
30b688d7b09e8e Tomas Winkler 2016-02-28 352 out_frames[i].req_resp = req_to_resp(req);
30b688d7b09e8e Tomas Winkler 2016-02-28 353 out_frames[i].addr = in_frame[0].addr;
30b688d7b09e8e Tomas Winkler 2016-02-28 354 out_frames[i].block_count = cpu_to_be16(blks);
30b688d7b09e8e Tomas Winkler 2016-02-28 355 }
30b688d7b09e8e Tomas Winkler 2016-02-28 356
30b688d7b09e8e Tomas Winkler 2016-02-28 357 if (rpmb_sim_calc_hmac(rsdev, out_frames, blks, mac)) {
30b688d7b09e8e Tomas Winkler 2016-02-28 358 err = RPMB_ERR_AUTH;
30b688d7b09e8e Tomas Winkler 2016-02-28 359 goto out;
30b688d7b09e8e Tomas Winkler 2016-02-28 360 }
30b688d7b09e8e Tomas Winkler 2016-02-28 361
30b688d7b09e8e Tomas Winkler 2016-02-28 362 memcpy(out_frames[blks - 1].key_mac, mac, sizeof(mac));
30b688d7b09e8e Tomas Winkler 2016-02-28 363
30b688d7b09e8e Tomas Winkler 2016-02-28 364 err = RPMB_ERR_OK;
30b688d7b09e8e Tomas Winkler 2016-02-28 365 for (i = 0; i < blks; i++)
30b688d7b09e8e Tomas Winkler 2016-02-28 366 out_frames[i].result = op_result(rsdev, err);
30b688d7b09e8e Tomas Winkler 2016-02-28 367
30b688d7b09e8e Tomas Winkler 2016-02-28 368 rsdev->out_frames = out_frames;
30b688d7b09e8e Tomas Winkler 2016-02-28 369 rsdev->out_frames_cnt = cnt;
30b688d7b09e8e Tomas Winkler 2016-02-28 370
30b688d7b09e8e Tomas Winkler 2016-02-28 371 return 0;
30b688d7b09e8e Tomas Winkler 2016-02-28 372
30b688d7b09e8e Tomas Winkler 2016-02-28 373 out:
30b688d7b09e8e Tomas Winkler 2016-02-28 374 memset(res_frame, 0, sizeof(*res_frame));
30b688d7b09e8e Tomas Winkler 2016-02-28 375 res_frame->req_resp = req_to_resp(req);
30b688d7b09e8e Tomas Winkler 2016-02-28 376 res_frame->result = op_result(rsdev, err);
30b688d7b09e8e Tomas Winkler 2016-02-28 377 kfree(out_frames);
30b688d7b09e8e Tomas Winkler 2016-02-28 378 rsdev->out_frames = res_frame;
30b688d7b09e8e Tomas Winkler 2016-02-28 379 rsdev->out_frames_cnt = 1;
30b688d7b09e8e Tomas Winkler 2016-02-28 380
30b688d7b09e8e Tomas Winkler 2016-02-28 381 return ret;
30b688d7b09e8e Tomas Winkler 2016-02-28 382 }
30b688d7b09e8e Tomas Winkler 2016-02-28 383
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 23472 bytes --]
reply other threads:[~2021-02-20 12:28 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202102202049.Td03058f-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/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.