Re: [PATCH 8/8] block: sed-opal: ioctl for writing to shadow mbr
From: kbuild test robot <hidden>
Date: 2018-03-14 19:40:32
Also in:
lkml
Hi Jonas, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on next-20180309] [cannot apply to linus/master v4.16-rc4 v4.16-rc3 v4.16-rc2 v4.16-rc5] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Jonas-Rabenstein/block-sed-opal-support-write-to-shadow-mbr/20180314-184749 reproduce: # apt-get install sparse make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__ sparse warnings: (new ones prefixed by >>) block/sed-opal.c:381:20: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [unsigned] [usertype] align @@ got ed long long [unsigned] [usertype] align @@ block/sed-opal.c:381:20: expected unsigned long long [unsigned] [usertype] align block/sed-opal.c:381:20: got restricted __be64 const [usertype] alignment_granularity block/sed-opal.c:382:25: sparse: incorrect type in assignment (different base types) @@ expected unsigned long long [unsigned] [usertype] lowest_lba @@ got ed long long [unsigned] [usertype] lowest_lba @@ block/sed-opal.c:382:25: expected unsigned long long [unsigned] [usertype] lowest_lba block/sed-opal.c:382:25: got restricted __be64 const [usertype] lowest_aligned_lba
quoted
block/sed-opal.c:1526:58: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] <asn:1>*from @@ got unsvoid const [noderef] <asn:1>*from @@
block/sed-opal.c:1526:58: expected void const [noderef] <asn:1>*from block/sed-opal.c:1526:58: got unsigned char const [usertype] *
quoted
block/sed-opal.c:2100:14: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] <asn:1>*<noident> @@ got onst volatile [noderef] <asn:1>*<noident> @@
block/sed-opal.c:2100:14: expected void const volatile [noderef] <asn:1>*<noident>
block/sed-opal.c:2100:14: got unsigned char const [usertype] *data
vim +1526 block/sed-opal.c
1493
1494 static int write_shadow_mbr(struct opal_dev *dev, void *data)
1495 {
1496 struct opal_shadow_mbr *shadow = data;
1497 size_t off;
1498 u64 len;
1499 int err = 0;
1500 u8 *payload;
1501
1502 /* FIXME: this is the maximum we can use for IO_BUFFER_LENGTH=2048.
1503 * Instead of having constant, it would be nice to compute the
1504 * actual value depending on IO_BUFFER_LENGTH
1505 */
1506 len = 1950;
1507
1508 /* do the actual transmission(s) */
1509 for (off = 0 ; off < shadow->size; off += len) {
1510 len = min(len, shadow->size - off);
1511
1512 pr_debug("MBR: write bytes %zu+%llu/%llu\n",
1513 off, len, shadow->size);
1514 err = start_opal_cmd(dev, opaluid[OPAL_MBR],
1515 opalmethod[OPAL_SET]);
1516 add_token_u8(&err, dev, OPAL_STARTNAME);
1517 add_token_u8(&err, dev, OPAL_WHERE);
1518 add_token_u64(&err, dev, shadow->offset + off);
1519 add_token_u8(&err, dev, OPAL_ENDNAME);
1520
1521 add_token_u8(&err, dev, OPAL_STARTNAME);
1522 add_token_u8(&err, dev, OPAL_VALUES);
1523 payload = add_bytestring_header(&err, dev, len);
1524 if (!payload)
1525 break;1526 if (copy_from_user(payload, shadow->data + off, len))
1527 err = -EFAULT; 1528 1529 add_token_u8(&err, dev, OPAL_ENDNAME); 1530 if (err) 1531 break; 1532 1533 err = finalize_and_send(dev, parse_and_check_status); 1534 if (err) 1535 break; 1536 } 1537 return err; 1538 } 1539 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation