Hi Douglas, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on mkp-scsi/for-next] [also build test WARNING on next-20190524] [cannot apply to v5.2-rc1] [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/Douglas-Gilbert/sg-v4-interface-rq-sharing-multiple-rqs/20190525-161346 base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next config: powerpc-allyesconfig (attached as .config) compiler: powerpc64-linux-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=powerpc If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): drivers/scsi/sg.c: In function 'sg_ioctl': >> drivers/scsi/sg.c:1698:1: warning: the frame size of 5824 bytes is larger than 2048 bytes [-Wframe-larger-than=] } ^ vim +1698 drivers/scsi/sg.c c5ad643d Douglas Gilbert 2019-05-24 1465 c5ad643d Douglas Gilbert 2019-05-24 1466 static long c5ad643d Douglas Gilbert 2019-05-24 1467 sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) c5ad643d Douglas Gilbert 2019-05-24 1468 { c5ad643d Douglas Gilbert 2019-05-24 1469 bool read_only = O_RDWR != (filp->f_flags & O_ACCMODE); c5ad643d Douglas Gilbert 2019-05-24 1470 bool check_detach = false; c5ad643d Douglas Gilbert 2019-05-24 1471 int val; c5ad643d Douglas Gilbert 2019-05-24 1472 int result = 0; c5ad643d Douglas Gilbert 2019-05-24 1473 void __user *p = uptr64(arg); c5ad643d Douglas Gilbert 2019-05-24 1474 int __user *ip = p; c5ad643d Douglas Gilbert 2019-05-24 1475 struct sg_device *sdp; c5ad643d Douglas Gilbert 2019-05-24 1476 struct sg_fd *sfp; c5ad643d Douglas Gilbert 2019-05-24 1477 struct sg_request *srp; c5ad643d Douglas Gilbert 2019-05-24 1478 struct scsi_device *sdev; c5ad643d Douglas Gilbert 2019-05-24 1479 __maybe_unused const char *pmlp = ", pass to mid-level"; c5ad643d Douglas Gilbert 2019-05-24 1480 c5ad643d Douglas Gilbert 2019-05-24 1481 sfp = filp->private_data; c5ad643d Douglas Gilbert 2019-05-24 1482 sdp = sfp->parentdp; c5ad643d Douglas Gilbert 2019-05-24 1483 SG_LOG(6, sdp, "%s: cmd=0x%x, O_NONBLOCK=%d\n", __func__, cmd_in, c5ad643d Douglas Gilbert 2019-05-24 1484 !!(filp->f_flags & O_NONBLOCK)); c5ad643d Douglas Gilbert 2019-05-24 1485 if (!sdp) c5ad643d Douglas Gilbert 2019-05-24 1486 return -ENXIO; c5ad643d Douglas Gilbert 2019-05-24 1487 if (unlikely(atomic_read(&sdp->detaching))) c5ad643d Douglas Gilbert 2019-05-24 1488 return -ENODEV; c5ad643d Douglas Gilbert 2019-05-24 1489 sdev = sdp->device; c5ad643d Douglas Gilbert 2019-05-24 1490 c5ad643d Douglas Gilbert 2019-05-24 1491 switch (cmd_in) { c5ad643d Douglas Gilbert 2019-05-24 1492 case SG_IO: c5ad643d Douglas Gilbert 2019-05-24 1493 return sg_ctl_sg_io(filp, sdp, sfp, p); c5ad643d Douglas Gilbert 2019-05-24 1494 case SG_GET_SCSI_ID: c5ad643d Douglas Gilbert 2019-05-24 1495 return sg_ctl_scsi_id(sdev, sdp, p); ^1da177e Linus Torvalds 2005-04-16 1496 case SG_SET_FORCE_PACK_ID: c5ad643d Douglas Gilbert 2019-05-24 1497 SG_LOG(3, sdp, "%s: SG_SET_FORCE_PACK_ID\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1498 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1499 if (result) ^1da177e Linus Torvalds 2005-04-16 1500 return result; c5ad643d Douglas Gilbert 2019-05-24 1501 assign_bit(SG_FFD_FORCE_PACKID, sfp->ffd_bm, !!val); ^1da177e Linus Torvalds 2005-04-16 1502 return 0; c5ad643d Douglas Gilbert 2019-05-24 1503 case SG_GET_PACK_ID: /* or tag of oldest "read"-able, -1 if none */ c5ad643d Douglas Gilbert 2019-05-24 1504 rcu_read_lock(); c5ad643d Douglas Gilbert 2019-05-24 1505 val = -1; c5ad643d Douglas Gilbert 2019-05-24 1506 list_for_each_entry_rcu(srp, &sfp->rq_list, rq_entry) { c5ad643d Douglas Gilbert 2019-05-24 1507 if (SG_RS_AWAIT_READ(srp) && c5ad643d Douglas Gilbert 2019-05-24 1508 !test_bit(SG_FRQ_SYNC_INVOC, srp->frq_bm)) { c5ad643d Douglas Gilbert 2019-05-24 1509 val = srp->pack_id; c5ad643d Douglas Gilbert 2019-05-24 1510 break; ^1da177e Linus Torvalds 2005-04-16 1511 } ^1da177e Linus Torvalds 2005-04-16 1512 } c5ad643d Douglas Gilbert 2019-05-24 1513 rcu_read_unlock(); c5ad643d Douglas Gilbert 2019-05-24 1514 SG_LOG(3, sdp, "%s: SG_GET_PACK_ID=%d\n", __func__, val); c5ad643d Douglas Gilbert 2019-05-24 1515 return put_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1516 case SG_GET_NUM_WAITING: c5ad643d Douglas Gilbert 2019-05-24 1517 /* SG_GET_NUM_WAITING + num_inflight == SG_SEIRV_SUBMITTED */ c5ad643d Douglas Gilbert 2019-05-24 1518 val = atomic_read(&sfp->waiting); c5ad643d Douglas Gilbert 2019-05-24 1519 SG_LOG(3, sdp, "%s: SG_GET_NUM_WAITING=%d\n", __func__, c5ad643d Douglas Gilbert 2019-05-24 1520 val); ^1da177e Linus Torvalds 2005-04-16 1521 return put_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1522 case SG_GET_SG_TABLESIZE: c5ad643d Douglas Gilbert 2019-05-24 1523 SG_LOG(3, sdp, "%s: SG_GET_SG_TABLESIZE=%d\n", __func__, c5ad643d Douglas Gilbert 2019-05-24 1524 sdp->max_sgat_elems); c5ad643d Douglas Gilbert 2019-05-24 1525 return put_user(sdp->max_sgat_elems, ip); ^1da177e Linus Torvalds 2005-04-16 1526 case SG_SET_RESERVED_SIZE: 1bc0eb04 Hannes Reinecke 2017-04-07 1527 mutex_lock(&sfp->f_mutex); c5ad643d Douglas Gilbert 2019-05-24 1528 result = get_user(val, ip); c5ad643d Douglas Gilbert 2019-05-24 1529 if (!result) { c5ad643d Douglas Gilbert 2019-05-24 1530 if (val >= 0 && val <= (1024 * 1024 * 1024)) { c5ad643d Douglas Gilbert 2019-05-24 1531 result = sg_set_reserved_sz(sfp, val); c5ad643d Douglas Gilbert 2019-05-24 1532 } else { c5ad643d Douglas Gilbert 2019-05-24 1533 SG_LOG(3, sdp, "%s: invalid size\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1534 result = -EINVAL; 1bc0eb04 Hannes Reinecke 2017-04-07 1535 } ^1da177e Linus Torvalds 2005-04-16 1536 } 1bc0eb04 Hannes Reinecke 2017-04-07 1537 mutex_unlock(&sfp->f_mutex); c5ad643d Douglas Gilbert 2019-05-24 1538 return result; ^1da177e Linus Torvalds 2005-04-16 1539 case SG_GET_RESERVED_SIZE: c5ad643d Douglas Gilbert 2019-05-24 1540 mutex_lock(&sfp->f_mutex); c5ad643d Douglas Gilbert 2019-05-24 1541 val = min_t(int, sfp->rsv_srp->sgat_h.buflen, c5ad643d Douglas Gilbert 2019-05-24 1542 sdp->max_sgat_sz); c5ad643d Douglas Gilbert 2019-05-24 1543 SG_LOG(3, sdp, "%s: SG_GET_RESERVED_SIZE=%d\n", c5ad643d Douglas Gilbert 2019-05-24 1544 __func__, val); c5ad643d Douglas Gilbert 2019-05-24 1545 result = put_user(val, ip); c5ad643d Douglas Gilbert 2019-05-24 1546 mutex_unlock(&sfp->f_mutex); c5ad643d Douglas Gilbert 2019-05-24 1547 return result; ^1da177e Linus Torvalds 2005-04-16 1548 case SG_SET_COMMAND_Q: c5ad643d Douglas Gilbert 2019-05-24 1549 SG_LOG(3, sdp, "%s: SG_SET_COMMAND_Q\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1550 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1551 if (result) ^1da177e Linus Torvalds 2005-04-16 1552 return result; c5ad643d Douglas Gilbert 2019-05-24 1553 assign_bit(SG_FFD_CMD_Q, sfp->ffd_bm, !!val); ^1da177e Linus Torvalds 2005-04-16 1554 return 0; ^1da177e Linus Torvalds 2005-04-16 1555 case SG_GET_COMMAND_Q: c5ad643d Douglas Gilbert 2019-05-24 1556 SG_LOG(3, sdp, "%s: SG_GET_COMMAND_Q\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1557 return put_user(test_bit(SG_FFD_CMD_Q, sfp->ffd_bm), ip); ^1da177e Linus Torvalds 2005-04-16 1558 case SG_SET_KEEP_ORPHAN: c5ad643d Douglas Gilbert 2019-05-24 1559 SG_LOG(3, sdp, "%s: SG_SET_KEEP_ORPHAN\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1560 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1561 if (result) ^1da177e Linus Torvalds 2005-04-16 1562 return result; c5ad643d Douglas Gilbert 2019-05-24 1563 assign_bit(SG_FFD_KEEP_ORPHAN, sfp->ffd_bm, !!val); ^1da177e Linus Torvalds 2005-04-16 1564 return 0; ^1da177e Linus Torvalds 2005-04-16 1565 case SG_GET_KEEP_ORPHAN: c5ad643d Douglas Gilbert 2019-05-24 1566 SG_LOG(3, sdp, "%s: SG_GET_KEEP_ORPHAN\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1567 return put_user(test_bit(SG_FFD_KEEP_ORPHAN, sfp->ffd_bm), c5ad643d Douglas Gilbert 2019-05-24 1568 ip); c5ad643d Douglas Gilbert 2019-05-24 1569 case SG_GET_VERSION_NUM: c5ad643d Douglas Gilbert 2019-05-24 1570 SG_LOG(3, sdp, "%s: SG_GET_VERSION_NUM\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1571 return put_user(sg_version_num, ip); c5ad643d Douglas Gilbert 2019-05-24 1572 case SG_GET_REQUEST_TABLE: c5ad643d Douglas Gilbert 2019-05-24 1573 return sg_ctl_req_tbl(sfp, p); c5ad643d Douglas Gilbert 2019-05-24 1574 case SG_SCSI_RESET: c5ad643d Douglas Gilbert 2019-05-24 1575 SG_LOG(3, sdp, "%s: SG_SCSI_RESET\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1576 check_detach = true; c5ad643d Douglas Gilbert 2019-05-24 1577 break; c5ad643d Douglas Gilbert 2019-05-24 1578 case SG_SET_TIMEOUT: c5ad643d Douglas Gilbert 2019-05-24 1579 SG_LOG(3, sdp, "%s: SG_SET_TIMEOUT\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1580 result = get_user(val, ip); c5ad643d Douglas Gilbert 2019-05-24 1581 if (result) c5ad643d Douglas Gilbert 2019-05-24 1582 return result; c5ad643d Douglas Gilbert 2019-05-24 1583 if (val < 0) c5ad643d Douglas Gilbert 2019-05-24 1584 return -EIO; c5ad643d Douglas Gilbert 2019-05-24 1585 if (val >= mult_frac((s64)INT_MAX, USER_HZ, HZ)) c5ad643d Douglas Gilbert 2019-05-24 1586 val = min_t(s64, mult_frac((s64)INT_MAX, USER_HZ, HZ), c5ad643d Douglas Gilbert 2019-05-24 1587 INT_MAX); c5ad643d Douglas Gilbert 2019-05-24 1588 sfp->timeout_user = val; c5ad643d Douglas Gilbert 2019-05-24 1589 sfp->timeout = mult_frac(val, HZ, USER_HZ); c5ad643d Douglas Gilbert 2019-05-24 1590 return 0; c5ad643d Douglas Gilbert 2019-05-24 1591 case SG_GET_TIMEOUT: /* N.B. User receives timeout as return value */ c5ad643d Douglas Gilbert 2019-05-24 1592 /* strange ..., for backward compatibility */ c5ad643d Douglas Gilbert 2019-05-24 1593 SG_LOG(3, sdp, "%s: SG_GET_TIMEOUT\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1594 return sfp->timeout_user; c5ad643d Douglas Gilbert 2019-05-24 1595 case SG_SET_FORCE_LOW_DMA: c5ad643d Douglas Gilbert 2019-05-24 1596 /* c5ad643d Douglas Gilbert 2019-05-24 1597 * N.B. This ioctl never worked properly, but failed to c5ad643d Douglas Gilbert 2019-05-24 1598 * return an error value. So returning '0' to keep c5ad643d Douglas Gilbert 2019-05-24 1599 * compatibility with legacy applications. c5ad643d Douglas Gilbert 2019-05-24 1600 */ c5ad643d Douglas Gilbert 2019-05-24 1601 SG_LOG(3, sdp, "%s: SG_SET_FORCE_LOW_DMA\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1602 return 0; c5ad643d Douglas Gilbert 2019-05-24 1603 case SG_GET_LOW_DMA: c5ad643d Douglas Gilbert 2019-05-24 1604 SG_LOG(3, sdp, "%s: SG_GET_LOW_DMA\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1605 return put_user((int)sdev->host->unchecked_isa_dma, ip); c5ad643d Douglas Gilbert 2019-05-24 1606 case SG_NEXT_CMD_LEN: /* active only in v2 interface */ c5ad643d Douglas Gilbert 2019-05-24 1607 SG_LOG(3, sdp, "%s: SG_NEXT_CMD_LEN\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1608 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1609 if (result) ^1da177e Linus Torvalds 2005-04-16 1610 return result; bf33f87d peter chang 2017-02-15 1611 if (val > SG_MAX_CDB_SIZE) bf33f87d peter chang 2017-02-15 1612 return -ENOMEM; c5ad643d Douglas Gilbert 2019-05-24 1613 mutex_lock(&sfp->f_mutex); c5ad643d Douglas Gilbert 2019-05-24 1614 sfp->next_cmd_len = max_t(int, val, 0); c5ad643d Douglas Gilbert 2019-05-24 1615 mutex_unlock(&sfp->f_mutex); ^1da177e Linus Torvalds 2005-04-16 1616 return 0; ^1da177e Linus Torvalds 2005-04-16 1617 case SG_GET_ACCESS_COUNT: c5ad643d Douglas Gilbert 2019-05-24 1618 SG_LOG(3, sdp, "%s: SG_GET_ACCESS_COUNT\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1619 /* faked - we don't have a real access count anymore */ c5ad643d Douglas Gilbert 2019-05-24 1620 val = (sdev ? 1 : 0); ^1da177e Linus Torvalds 2005-04-16 1621 return put_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1622 case SG_EMULATED_HOST: c5ad643d Douglas Gilbert 2019-05-24 1623 SG_LOG(3, sdp, "%s: SG_EMULATED_HOST\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1624 if (unlikely(atomic_read(&sdp->detaching))) ^1da177e Linus Torvalds 2005-04-16 1625 return -ENODEV; c5ad643d Douglas Gilbert 2019-05-24 1626 return put_user(sdev->host->hostt->emulated, ip); ^1da177e Linus Torvalds 2005-04-16 1627 case SCSI_IOCTL_SEND_COMMAND: c5ad643d Douglas Gilbert 2019-05-24 1628 SG_LOG(3, sdp, "%s: SCSI_IOCTL_SEND_COMMAND\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1629 if (unlikely(atomic_read(&sdp->detaching))) ^1da177e Linus Torvalds 2005-04-16 1630 return -ENODEV; c5ad643d Douglas Gilbert 2019-05-24 1631 return sg_scsi_ioctl(sdev->request_queue, NULL, c5ad643d Douglas Gilbert 2019-05-24 1632 filp->f_mode, p); ^1da177e Linus Torvalds 2005-04-16 1633 case SG_SET_DEBUG: c5ad643d Douglas Gilbert 2019-05-24 1634 SG_LOG(3, sdp, "%s: SG_SET_DEBUG\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1635 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1636 if (result) ^1da177e Linus Torvalds 2005-04-16 1637 return result; c5ad643d Douglas Gilbert 2019-05-24 1638 sdp->sgdebug = (u8)val; ^1da177e Linus Torvalds 2005-04-16 1639 return 0; 44ec9542 Alan Stern 2007-02-20 1640 case BLKSECTGET: c5ad643d Douglas Gilbert 2019-05-24 1641 SG_LOG(3, sdp, "%s: BLKSECTGET\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1642 return put_user(max_sectors_bytes(sdev->request_queue), ip); 6da127ad Christof Schmitt 2008-01-11 1643 case BLKTRACESETUP: c5ad643d Douglas Gilbert 2019-05-24 1644 SG_LOG(3, sdp, "%s: BLKTRACESETUP\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1645 return blk_trace_setup(sdev->request_queue, 6da127ad Christof Schmitt 2008-01-11 1646 sdp->disk->disk_name, 76e3a19d Martin Peschke 2009-01-30 1647 MKDEV(SCSI_GENERIC_MAJOR, sdp->index), 7475c8ae Bart Van Assche 2017-08-25 1648 NULL, p); 6da127ad Christof Schmitt 2008-01-11 1649 case BLKTRACESTART: c5ad643d Douglas Gilbert 2019-05-24 1650 SG_LOG(3, sdp, "%s: BLKTRACESTART\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1651 return blk_trace_startstop(sdev->request_queue, 1); 6da127ad Christof Schmitt 2008-01-11 1652 case BLKTRACESTOP: c5ad643d Douglas Gilbert 2019-05-24 1653 SG_LOG(3, sdp, "%s: BLKTRACESTOP\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1654 return blk_trace_startstop(sdev->request_queue, 0); 6da127ad Christof Schmitt 2008-01-11 1655 case BLKTRACETEARDOWN: c5ad643d Douglas Gilbert 2019-05-24 1656 SG_LOG(3, sdp, "%s: BLKTRACETEARDOWN\n", __func__); c5ad643d Douglas Gilbert 2019-05-24 1657 return blk_trace_remove(sdev->request_queue); 906d15fb Christoph Hellwig 2014-10-11 1658 case SCSI_IOCTL_GET_IDLUN: c5ad643d Douglas Gilbert 2019-05-24 1659 SG_LOG(3, sdp, "%s: SCSI_IOCTL_GET_IDLUN %s\n", __func__, c5ad643d Douglas Gilbert 2019-05-24 1660 pmlp); c5ad643d Douglas Gilbert 2019-05-24 1661 check_detach = true; c5ad643d Douglas Gilbert 2019-05-24 1662 break; 906d15fb Christoph Hellwig 2014-10-11 1663 case SCSI_IOCTL_GET_BUS_NUMBER: c5ad643d Douglas Gilbert 2019-05-24 1664 SG_LOG(3, sdp, "%s: SCSI_IOCTL_GET_BUS_NUMBER%s\n", c5ad643d Douglas Gilbert 2019-05-24 1665 __func__, pmlp); c5ad643d Douglas Gilbert 2019-05-24 1666 check_detach = true; c5ad643d Douglas Gilbert 2019-05-24 1667 break; 906d15fb Christoph Hellwig 2014-10-11 1668 case SCSI_IOCTL_PROBE_HOST: c5ad643d Douglas Gilbert 2019-05-24 1669 SG_LOG(3, sdp, "%s: SCSI_IOCTL_PROBE_HOST%s\n", __func__, c5ad643d Douglas Gilbert 2019-05-24 1670 pmlp); c5ad643d Douglas Gilbert 2019-05-24 1671 check_detach = true; c5ad643d Douglas Gilbert 2019-05-24 1672 break; 906d15fb Christoph Hellwig 2014-10-11 1673 case SG_GET_TRANSFORM: c5ad643d Douglas Gilbert 2019-05-24 1674 SG_LOG(3, sdp, "%s: SG_GET_TRANSFORM%s\n", __func__, pmlp); c5ad643d Douglas Gilbert 2019-05-24 1675 check_detach = true; c5ad643d Douglas Gilbert 2019-05-24 1676 break; c5ad643d Douglas Gilbert 2019-05-24 1677 case SG_SET_TRANSFORM: c5ad643d Douglas Gilbert 2019-05-24 1678 SG_LOG(3, sdp, "%s: SG_SET_TRANSFORM%s\n", __func__, pmlp); c5ad643d Douglas Gilbert 2019-05-24 1679 check_detach = true; 906d15fb Christoph Hellwig 2014-10-11 1680 break; ^1da177e Linus Torvalds 2005-04-16 1681 default: c5ad643d Douglas Gilbert 2019-05-24 1682 SG_LOG(3, sdp, "%s: unrecognized ioctl [0x%x]%s\n", c5ad643d Douglas Gilbert 2019-05-24 1683 __func__, cmd_in, pmlp); ^1da177e Linus Torvalds 2005-04-16 1684 if (read_only) c5ad643d Douglas Gilbert 2019-05-24 1685 return -EPERM; /* don't know, so take safer approach */ 906d15fb Christoph Hellwig 2014-10-11 1686 break; ^1da177e Linus Torvalds 2005-04-16 1687 } 906d15fb Christoph Hellwig 2014-10-11 1688 c5ad643d Douglas Gilbert 2019-05-24 1689 if (check_detach) { c5ad643d Douglas Gilbert 2019-05-24 1690 if (unlikely(atomic_read(&sdp->detaching))) c5ad643d Douglas Gilbert 2019-05-24 1691 return -ENODEV; c5ad643d Douglas Gilbert 2019-05-24 1692 } c5ad643d Douglas Gilbert 2019-05-24 1693 result = sg_allow_if_err_recovery(sdp, (filp->f_flags & O_NDELAY)); 906d15fb Christoph Hellwig 2014-10-11 1694 if (result) 906d15fb Christoph Hellwig 2014-10-11 1695 return result; c5ad643d Douglas Gilbert 2019-05-24 1696 /* ioctl that reach here are forwarded to the mid-level */ c5ad643d Douglas Gilbert 2019-05-24 1697 return scsi_ioctl(sdev, cmd_in, p); ^1da177e Linus Torvalds 2005-04-16 @1698 } ^1da177e Linus Torvalds 2005-04-16 1699 :::::: The code at line 1698 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip