Hi Douglas, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.3-rc1 next-20190726] [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-add-v4-interface/20190727-170351 config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-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=arm 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_v4_receive': drivers/scsi/sg.c:1126:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] h4p->response = (u64)srp->s_hdr4.sbp; ^ drivers/scsi/sg.c: In function 'sg_find_srp_by_id': drivers/scsi/sg.c:3052:34: warning: 'bad_sr_st' may be used uninitialized in this function [-Wmaybe-uninitialized] __maybe_unused enum sg_rq_state bad_sr_st; ^~~~~~~~~ drivers/scsi/sg.c: In function 'sg_ioctl': >> drivers/scsi/sg.c:2006:1: warning: the frame size of 2160 bytes is larger than 2048 bytes [-Wframe-larger-than=] } ^ vim +2006 drivers/scsi/sg.c 3dd41421 Douglas Gilbert 2019-07-26 1766 3dd41421 Douglas Gilbert 2019-07-26 1767 static long 3dd41421 Douglas Gilbert 2019-07-26 1768 sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg) 3dd41421 Douglas Gilbert 2019-07-26 1769 { 3dd41421 Douglas Gilbert 2019-07-26 1770 bool read_only = O_RDWR != (filp->f_flags & O_ACCMODE); 3dd41421 Douglas Gilbert 2019-07-26 1771 bool check_detach = false; 3dd41421 Douglas Gilbert 2019-07-26 1772 int val; 3dd41421 Douglas Gilbert 2019-07-26 1773 int result = 0; 3dd41421 Douglas Gilbert 2019-07-26 1774 void __user *p = uptr64(arg); 3dd41421 Douglas Gilbert 2019-07-26 1775 int __user *ip = p; 3dd41421 Douglas Gilbert 2019-07-26 1776 struct sg_device *sdp; 3dd41421 Douglas Gilbert 2019-07-26 1777 struct sg_fd *sfp; 3dd41421 Douglas Gilbert 2019-07-26 1778 struct sg_request *srp; 3dd41421 Douglas Gilbert 2019-07-26 1779 struct scsi_device *sdev; 3dd41421 Douglas Gilbert 2019-07-26 1780 __maybe_unused const char *pmlp = ", pass to mid-level"; 3dd41421 Douglas Gilbert 2019-07-26 1781 3dd41421 Douglas Gilbert 2019-07-26 1782 sfp = filp->private_data; 3dd41421 Douglas Gilbert 2019-07-26 1783 sdp = sfp->parentdp; 3dd41421 Douglas Gilbert 2019-07-26 1784 SG_LOG(6, sfp, "%s: cmd=0x%x, O_NONBLOCK=%d\n", __func__, cmd_in, 3dd41421 Douglas Gilbert 2019-07-26 1785 !!(filp->f_flags & O_NONBLOCK)); 3dd41421 Douglas Gilbert 2019-07-26 1786 if (!sdp) 3dd41421 Douglas Gilbert 2019-07-26 1787 return -ENXIO; 3dd41421 Douglas Gilbert 2019-07-26 1788 if (unlikely(SG_IS_DETACHING(sdp))) 3dd41421 Douglas Gilbert 2019-07-26 1789 return -ENODEV; 3dd41421 Douglas Gilbert 2019-07-26 1790 sdev = sdp->device; 3dd41421 Douglas Gilbert 2019-07-26 1791 3dd41421 Douglas Gilbert 2019-07-26 1792 switch (cmd_in) { 3dd41421 Douglas Gilbert 2019-07-26 1793 case SG_IO: 3dd41421 Douglas Gilbert 2019-07-26 1794 return sg_ctl_sg_io(filp, sdp, sfp, p); cf1c1047 Douglas Gilbert 2019-07-26 1795 case SG_IOSUBMIT: cf1c1047 Douglas Gilbert 2019-07-26 1796 SG_LOG(3, sfp, "%s: SG_IOSUBMIT\n", __func__); cf1c1047 Douglas Gilbert 2019-07-26 1797 return sg_ctl_iosubmit(filp, sfp, p); 2e815ed4 Douglas Gilbert 2019-07-26 1798 case SG_IOSUBMIT_V3: 2e815ed4 Douglas Gilbert 2019-07-26 1799 SG_LOG(3, sfp, "%s: SG_IOSUBMIT_V3\n", __func__); 2e815ed4 Douglas Gilbert 2019-07-26 1800 return sg_ctl_iosubmit_v3(filp, sfp, p); cf1c1047 Douglas Gilbert 2019-07-26 1801 case SG_IORECEIVE: cf1c1047 Douglas Gilbert 2019-07-26 1802 SG_LOG(3, sfp, "%s: SG_IORECEIVE\n", __func__); cf1c1047 Douglas Gilbert 2019-07-26 1803 return sg_ctl_ioreceive(filp, sfp, p); 2e815ed4 Douglas Gilbert 2019-07-26 1804 case SG_IORECEIVE_V3: 2e815ed4 Douglas Gilbert 2019-07-26 1805 SG_LOG(3, sfp, "%s: SG_IORECEIVE_V3\n", __func__); 2e815ed4 Douglas Gilbert 2019-07-26 1806 return sg_ctl_ioreceive_v3(filp, sfp, p); 3dd41421 Douglas Gilbert 2019-07-26 1807 case SG_GET_SCSI_ID: 3dd41421 Douglas Gilbert 2019-07-26 1808 return sg_ctl_scsi_id(sdev, sfp, p); ^1da177e Linus Torvalds 2005-04-16 1809 case SG_SET_FORCE_PACK_ID: 3dd41421 Douglas Gilbert 2019-07-26 1810 SG_LOG(3, sfp, "%s: SG_SET_FORCE_PACK_ID\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1811 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1812 if (result) ^1da177e Linus Torvalds 2005-04-16 1813 return result; 3dd41421 Douglas Gilbert 2019-07-26 1814 assign_bit(SG_FFD_FORCE_PACKID, sfp->ffd_bm, !!val); ^1da177e Linus Torvalds 2005-04-16 1815 return 0; 3dd41421 Douglas Gilbert 2019-07-26 1816 case SG_GET_PACK_ID: /* or tag of oldest "read"-able, -1 if none */ 3dd41421 Douglas Gilbert 2019-07-26 1817 rcu_read_lock(); 3dd41421 Douglas Gilbert 2019-07-26 1818 val = -1; 3dd41421 Douglas Gilbert 2019-07-26 1819 list_for_each_entry_rcu(srp, &sfp->rq_list, rq_entry) { 3dd41421 Douglas Gilbert 2019-07-26 1820 if (SG_RS_AWAIT_READ(srp) && 3dd41421 Douglas Gilbert 2019-07-26 1821 !test_bit(SG_FRQ_SYNC_INVOC, srp->frq_bm)) { 3dd41421 Douglas Gilbert 2019-07-26 1822 val = srp->pack_id; 3dd41421 Douglas Gilbert 2019-07-26 1823 break; ^1da177e Linus Torvalds 2005-04-16 1824 } ^1da177e Linus Torvalds 2005-04-16 1825 } 3dd41421 Douglas Gilbert 2019-07-26 1826 rcu_read_unlock(); 3dd41421 Douglas Gilbert 2019-07-26 1827 SG_LOG(3, sfp, "%s: SG_GET_PACK_ID=%d\n", __func__, val); 3dd41421 Douglas Gilbert 2019-07-26 1828 return put_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1829 case SG_GET_NUM_WAITING: 3aa2a401 Douglas Gilbert 2019-07-26 1830 return put_user(atomic_read(&sfp->waiting), ip); ^1da177e Linus Torvalds 2005-04-16 1831 case SG_GET_SG_TABLESIZE: 3dd41421 Douglas Gilbert 2019-07-26 1832 SG_LOG(3, sfp, "%s: SG_GET_SG_TABLESIZE=%d\n", __func__, 3dd41421 Douglas Gilbert 2019-07-26 1833 sdp->max_sgat_elems); 86e1d76d Douglas Gilbert 2019-07-26 1834 return put_user(sdp->max_sgat_elems, ip); ^1da177e Linus Torvalds 2005-04-16 1835 case SG_SET_RESERVED_SIZE: 1bc0eb04 Hannes Reinecke 2017-04-07 1836 mutex_lock(&sfp->f_mutex); 3dd41421 Douglas Gilbert 2019-07-26 1837 result = get_user(val, ip); 3dd41421 Douglas Gilbert 2019-07-26 1838 if (!result) { 3dd41421 Douglas Gilbert 2019-07-26 1839 if (val >= 0 && val <= (1024 * 1024 * 1024)) { 3dd41421 Douglas Gilbert 2019-07-26 1840 result = sg_set_reserved_sz(sfp, val); 3dd41421 Douglas Gilbert 2019-07-26 1841 } else { 3dd41421 Douglas Gilbert 2019-07-26 1842 SG_LOG(3, sfp, "%s: invalid size\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1843 result = -EINVAL; 1bc0eb04 Hannes Reinecke 2017-04-07 1844 } ^1da177e Linus Torvalds 2005-04-16 1845 } 1bc0eb04 Hannes Reinecke 2017-04-07 1846 mutex_unlock(&sfp->f_mutex); 3dd41421 Douglas Gilbert 2019-07-26 1847 return result; ^1da177e Linus Torvalds 2005-04-16 1848 case SG_GET_RESERVED_SIZE: 3dd41421 Douglas Gilbert 2019-07-26 1849 mutex_lock(&sfp->f_mutex); 3dd41421 Douglas Gilbert 2019-07-26 1850 val = min_t(int, sfp->rsv_srp->sgat_h.buflen, 3dd41421 Douglas Gilbert 2019-07-26 1851 sdp->max_sgat_sz); 3dd41421 Douglas Gilbert 2019-07-26 1852 SG_LOG(3, sfp, "%s: SG_GET_RESERVED_SIZE=%d\n", 3dd41421 Douglas Gilbert 2019-07-26 1853 __func__, val); 3dd41421 Douglas Gilbert 2019-07-26 1854 result = put_user(val, ip); 3dd41421 Douglas Gilbert 2019-07-26 1855 mutex_unlock(&sfp->f_mutex); 3dd41421 Douglas Gilbert 2019-07-26 1856 return result; ^1da177e Linus Torvalds 2005-04-16 1857 case SG_SET_COMMAND_Q: 3dd41421 Douglas Gilbert 2019-07-26 1858 SG_LOG(3, sfp, "%s: SG_SET_COMMAND_Q\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1859 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1860 if (result) ^1da177e Linus Torvalds 2005-04-16 1861 return result; 3dd41421 Douglas Gilbert 2019-07-26 1862 assign_bit(SG_FFD_CMD_Q, sfp->ffd_bm, !!val); ^1da177e Linus Torvalds 2005-04-16 1863 return 0; ^1da177e Linus Torvalds 2005-04-16 1864 case SG_GET_COMMAND_Q: 3dd41421 Douglas Gilbert 2019-07-26 1865 SG_LOG(3, sfp, "%s: SG_GET_COMMAND_Q\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1866 return put_user(test_bit(SG_FFD_CMD_Q, sfp->ffd_bm), ip); ^1da177e Linus Torvalds 2005-04-16 1867 case SG_SET_KEEP_ORPHAN: 3dd41421 Douglas Gilbert 2019-07-26 1868 SG_LOG(3, sfp, "%s: SG_SET_KEEP_ORPHAN\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1869 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1870 if (result) ^1da177e Linus Torvalds 2005-04-16 1871 return result; 3dd41421 Douglas Gilbert 2019-07-26 1872 assign_bit(SG_FFD_KEEP_ORPHAN, sfp->ffd_bm, !!val); ^1da177e Linus Torvalds 2005-04-16 1873 return 0; ^1da177e Linus Torvalds 2005-04-16 1874 case SG_GET_KEEP_ORPHAN: 3dd41421 Douglas Gilbert 2019-07-26 1875 SG_LOG(3, sfp, "%s: SG_GET_KEEP_ORPHAN\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1876 return put_user(test_bit(SG_FFD_KEEP_ORPHAN, sfp->ffd_bm), 3dd41421 Douglas Gilbert 2019-07-26 1877 ip); 3dd41421 Douglas Gilbert 2019-07-26 1878 case SG_GET_VERSION_NUM: 3dd41421 Douglas Gilbert 2019-07-26 1879 SG_LOG(3, sfp, "%s: SG_GET_VERSION_NUM\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1880 return put_user(sg_version_num, ip); 3dd41421 Douglas Gilbert 2019-07-26 1881 case SG_GET_REQUEST_TABLE: 3dd41421 Douglas Gilbert 2019-07-26 1882 return sg_ctl_req_tbl(sfp, p); 3dd41421 Douglas Gilbert 2019-07-26 1883 case SG_SCSI_RESET: 3dd41421 Douglas Gilbert 2019-07-26 1884 SG_LOG(3, sfp, "%s: SG_SCSI_RESET\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1885 check_detach = true; 3dd41421 Douglas Gilbert 2019-07-26 1886 break; 3dd41421 Douglas Gilbert 2019-07-26 1887 case SG_SET_TIMEOUT: 3dd41421 Douglas Gilbert 2019-07-26 1888 SG_LOG(3, sfp, "%s: SG_SET_TIMEOUT\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1889 result = get_user(val, ip); 3dd41421 Douglas Gilbert 2019-07-26 1890 if (result) 3dd41421 Douglas Gilbert 2019-07-26 1891 return result; 3dd41421 Douglas Gilbert 2019-07-26 1892 if (val < 0) 3dd41421 Douglas Gilbert 2019-07-26 1893 return -EIO; 3dd41421 Douglas Gilbert 2019-07-26 1894 if (val >= mult_frac((s64)INT_MAX, USER_HZ, HZ)) 3dd41421 Douglas Gilbert 2019-07-26 1895 val = min_t(s64, mult_frac((s64)INT_MAX, USER_HZ, HZ), 3dd41421 Douglas Gilbert 2019-07-26 1896 INT_MAX); 3dd41421 Douglas Gilbert 2019-07-26 1897 sfp->timeout_user = val; 3dd41421 Douglas Gilbert 2019-07-26 1898 sfp->timeout = mult_frac(val, HZ, USER_HZ); 3dd41421 Douglas Gilbert 2019-07-26 1899 return 0; 3dd41421 Douglas Gilbert 2019-07-26 1900 case SG_GET_TIMEOUT: /* N.B. User receives timeout as return value */ 3dd41421 Douglas Gilbert 2019-07-26 1901 /* strange ..., for backward compatibility */ 3dd41421 Douglas Gilbert 2019-07-26 1902 SG_LOG(3, sfp, "%s: SG_GET_TIMEOUT\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1903 return sfp->timeout_user; 3dd41421 Douglas Gilbert 2019-07-26 1904 case SG_SET_FORCE_LOW_DMA: 3dd41421 Douglas Gilbert 2019-07-26 1905 /* 3dd41421 Douglas Gilbert 2019-07-26 1906 * N.B. This ioctl never worked properly, but failed to 3dd41421 Douglas Gilbert 2019-07-26 1907 * return an error value. So returning '0' to keep 3dd41421 Douglas Gilbert 2019-07-26 1908 * compatibility with legacy applications. 3dd41421 Douglas Gilbert 2019-07-26 1909 */ 3dd41421 Douglas Gilbert 2019-07-26 1910 SG_LOG(3, sfp, "%s: SG_SET_FORCE_LOW_DMA\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1911 return 0; 3dd41421 Douglas Gilbert 2019-07-26 1912 case SG_GET_LOW_DMA: 3dd41421 Douglas Gilbert 2019-07-26 1913 SG_LOG(3, sfp, "%s: SG_GET_LOW_DMA\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1914 return put_user((int)sdev->host->unchecked_isa_dma, ip); 3dd41421 Douglas Gilbert 2019-07-26 1915 case SG_NEXT_CMD_LEN: /* active only in v2 interface */ 3dd41421 Douglas Gilbert 2019-07-26 1916 SG_LOG(3, sfp, "%s: SG_NEXT_CMD_LEN\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1917 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1918 if (result) ^1da177e Linus Torvalds 2005-04-16 1919 return result; bf33f87d peter chang 2017-02-15 1920 if (val > SG_MAX_CDB_SIZE) bf33f87d peter chang 2017-02-15 1921 return -ENOMEM; 3dd41421 Douglas Gilbert 2019-07-26 1922 mutex_lock(&sfp->f_mutex); 3dd41421 Douglas Gilbert 2019-07-26 1923 sfp->next_cmd_len = max_t(int, val, 0); 3dd41421 Douglas Gilbert 2019-07-26 1924 mutex_unlock(&sfp->f_mutex); ^1da177e Linus Torvalds 2005-04-16 1925 return 0; ^1da177e Linus Torvalds 2005-04-16 1926 case SG_GET_ACCESS_COUNT: 3dd41421 Douglas Gilbert 2019-07-26 1927 SG_LOG(3, sfp, "%s: SG_GET_ACCESS_COUNT\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1928 /* faked - we don't have a real access count anymore */ 3dd41421 Douglas Gilbert 2019-07-26 1929 val = (sdev ? 1 : 0); ^1da177e Linus Torvalds 2005-04-16 1930 return put_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1931 case SG_EMULATED_HOST: 3dd41421 Douglas Gilbert 2019-07-26 1932 SG_LOG(3, sfp, "%s: SG_EMULATED_HOST\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1933 if (unlikely(SG_IS_DETACHING(sdp))) ^1da177e Linus Torvalds 2005-04-16 1934 return -ENODEV; 3dd41421 Douglas Gilbert 2019-07-26 1935 return put_user(sdev->host->hostt->emulated, ip); ^1da177e Linus Torvalds 2005-04-16 1936 case SCSI_IOCTL_SEND_COMMAND: 3dd41421 Douglas Gilbert 2019-07-26 1937 SG_LOG(3, sfp, "%s: SCSI_IOCTL_SEND_COMMAND\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1938 if (unlikely(SG_IS_DETACHING(sdp))) ^1da177e Linus Torvalds 2005-04-16 1939 return -ENODEV; 3dd41421 Douglas Gilbert 2019-07-26 1940 return sg_scsi_ioctl(sdev->request_queue, NULL, 3dd41421 Douglas Gilbert 2019-07-26 1941 filp->f_mode, p); ^1da177e Linus Torvalds 2005-04-16 1942 case SG_SET_DEBUG: 3dd41421 Douglas Gilbert 2019-07-26 1943 SG_LOG(3, sfp, "%s: SG_SET_DEBUG\n", __func__); ^1da177e Linus Torvalds 2005-04-16 1944 result = get_user(val, ip); ^1da177e Linus Torvalds 2005-04-16 1945 if (result) ^1da177e Linus Torvalds 2005-04-16 1946 return result; 3dd41421 Douglas Gilbert 2019-07-26 1947 assign_bit(SG_FDEV_LOG_SENSE, sdp->fdev_bm, !!val); ^1da177e Linus Torvalds 2005-04-16 1948 return 0; 44ec9542 Alan Stern 2007-02-20 1949 case BLKSECTGET: 3dd41421 Douglas Gilbert 2019-07-26 1950 SG_LOG(3, sfp, "%s: BLKSECTGET\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1951 return put_user(max_sectors_bytes(sdev->request_queue), ip); 6da127ad Christof Schmitt 2008-01-11 1952 case BLKTRACESETUP: 3dd41421 Douglas Gilbert 2019-07-26 1953 SG_LOG(3, sfp, "%s: BLKTRACESETUP\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1954 return blk_trace_setup(sdev->request_queue, 6da127ad Christof Schmitt 2008-01-11 1955 sdp->disk->disk_name, 76e3a19d Martin Peschke 2009-01-30 1956 MKDEV(SCSI_GENERIC_MAJOR, sdp->index), 7475c8ae Bart Van Assche 2017-08-25 1957 NULL, p); 6da127ad Christof Schmitt 2008-01-11 1958 case BLKTRACESTART: 3dd41421 Douglas Gilbert 2019-07-26 1959 SG_LOG(3, sfp, "%s: BLKTRACESTART\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1960 return blk_trace_startstop(sdev->request_queue, 1); 6da127ad Christof Schmitt 2008-01-11 1961 case BLKTRACESTOP: 3dd41421 Douglas Gilbert 2019-07-26 1962 SG_LOG(3, sfp, "%s: BLKTRACESTOP\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1963 return blk_trace_startstop(sdev->request_queue, 0); 6da127ad Christof Schmitt 2008-01-11 1964 case BLKTRACETEARDOWN: 3dd41421 Douglas Gilbert 2019-07-26 1965 SG_LOG(3, sfp, "%s: BLKTRACETEARDOWN\n", __func__); 3dd41421 Douglas Gilbert 2019-07-26 1966 return blk_trace_remove(sdev->request_queue); 906d15fb Christoph Hellwig 2014-10-11 1967 case SCSI_IOCTL_GET_IDLUN: 3dd41421 Douglas Gilbert 2019-07-26 1968 SG_LOG(3, sfp, "%s: SCSI_IOCTL_GET_IDLUN %s\n", __func__, 3dd41421 Douglas Gilbert 2019-07-26 1969 pmlp); 3dd41421 Douglas Gilbert 2019-07-26 1970 check_detach = true; 3dd41421 Douglas Gilbert 2019-07-26 1971 break; 906d15fb Christoph Hellwig 2014-10-11 1972 case SCSI_IOCTL_GET_BUS_NUMBER: 3dd41421 Douglas Gilbert 2019-07-26 1973 SG_LOG(3, sfp, "%s: SCSI_IOCTL_GET_BUS_NUMBER%s\n", 3dd41421 Douglas Gilbert 2019-07-26 1974 __func__, pmlp); 3dd41421 Douglas Gilbert 2019-07-26 1975 check_detach = true; 3dd41421 Douglas Gilbert 2019-07-26 1976 break; 906d15fb Christoph Hellwig 2014-10-11 1977 case SCSI_IOCTL_PROBE_HOST: 3dd41421 Douglas Gilbert 2019-07-26 1978 SG_LOG(3, sfp, "%s: SCSI_IOCTL_PROBE_HOST%s\n", __func__, 3dd41421 Douglas Gilbert 2019-07-26 1979 pmlp); 3dd41421 Douglas Gilbert 2019-07-26 1980 check_detach = true; 3dd41421 Douglas Gilbert 2019-07-26 1981 break; 906d15fb Christoph Hellwig 2014-10-11 1982 case SG_GET_TRANSFORM: 3dd41421 Douglas Gilbert 2019-07-26 1983 SG_LOG(3, sfp, "%s: SG_GET_TRANSFORM%s\n", __func__, pmlp); 3dd41421 Douglas Gilbert 2019-07-26 1984 check_detach = true; 3dd41421 Douglas Gilbert 2019-07-26 1985 break; 3dd41421 Douglas Gilbert 2019-07-26 1986 case SG_SET_TRANSFORM: 3dd41421 Douglas Gilbert 2019-07-26 1987 SG_LOG(3, sfp, "%s: SG_SET_TRANSFORM%s\n", __func__, pmlp); 3dd41421 Douglas Gilbert 2019-07-26 1988 check_detach = true; 906d15fb Christoph Hellwig 2014-10-11 1989 break; ^1da177e Linus Torvalds 2005-04-16 1990 default: 3dd41421 Douglas Gilbert 2019-07-26 1991 SG_LOG(3, sfp, "%s: unrecognized ioctl [0x%x]%s\n", 3dd41421 Douglas Gilbert 2019-07-26 1992 __func__, cmd_in, pmlp); ^1da177e Linus Torvalds 2005-04-16 1993 if (read_only) 3dd41421 Douglas Gilbert 2019-07-26 1994 return -EPERM; /* don't know, so take safer approach */ 906d15fb Christoph Hellwig 2014-10-11 1995 break; ^1da177e Linus Torvalds 2005-04-16 1996 } 906d15fb Christoph Hellwig 2014-10-11 1997 3dd41421 Douglas Gilbert 2019-07-26 1998 if (check_detach) { 3dd41421 Douglas Gilbert 2019-07-26 1999 if (unlikely(SG_IS_DETACHING(sdp))) 3dd41421 Douglas Gilbert 2019-07-26 2000 return -ENODEV; 3dd41421 Douglas Gilbert 2019-07-26 2001 } 3dd41421 Douglas Gilbert 2019-07-26 2002 /* ioctl that reach here are forwarded to the mid-level */ 3dd41421 Douglas Gilbert 2019-07-26 2003 if (likely(scsi_block_when_processing_errors(sdp->device))) 3dd41421 Douglas Gilbert 2019-07-26 2004 return scsi_ioctl(sdev, cmd_in, p); 3dd41421 Douglas Gilbert 2019-07-26 2005 return -ENXIO; ^1da177e Linus Torvalds 2005-04-16 @2006 } ^1da177e Linus Torvalds 2005-04-16 2007 :::::: The code at line 2006 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