:::::: 
:::::: Manual check reason: "low confidence bisect report"
:::::: Manual check reason: "low confidence static check warning: 
drivers/ufs/core/ufshcd-priv.h:256:40: warning: dereference of NULL '0' 
[CWE-476] [-Wanalyzer-null-dereference]"
:::::: 

CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Bart Van Assche <[email protected]>
CC: "Martin K. Petersen" <[email protected]>
CC: Bean Huo <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3
commit: dd11376b9f1b73aca3f8c6eb541486bbb6996f05 scsi: ufs: Split the 
drivers/scsi/ufs directory
date:   4 weeks ago
:::::: branch date: 35 hours ago
:::::: commit date: 4 weeks ago
config: i386-randconfig-c001-20220613 
(https://download.01.org/0day-ci/archive/20220614/[email protected]/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dd11376b9f1b73aca3f8c6eb541486bbb6996f05
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout dd11376b9f1b73aca3f8c6eb541486bbb6996f05
        # save the config file
         ARCH=i386 KBUILD_USERCFLAGS='-fanalyzer -Wno-error' 

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>


gcc-analyzer warnings: (new ones prefixed by >>)
   In file included from drivers/ufs/core/ufs_bsg.c:13:
   drivers/ufs/core/ufs_bsg.c: In function 'ufs_bsg_request':
>> drivers/ufs/core/ufshcd-priv.h:256:40: warning: dereference of NULL '0' 
>> [CWE-476] [-Wanalyzer-null-dereference]
     256 |         return 
pm_runtime_get_sync(&hba->ufs_device_wlun->sdev_gendev);
         |                                     ~~~^~~~~~~~~~~~~~~~~
     'ufs_bsg_request': events 1-2
       |
       |drivers/ufs/core/ufs_bsg.c:86:12:
       |   86 | static int ufs_bsg_request(struct bsg_job *job)
       |      |            ^~~~~~~~~~~~~~~
       |      |            |
       |      |            (1) entry to 'ufs_bsg_request'
       |......
       |   90 |         struct ufs_hba *hba = 
shost_priv(dev_to_shost(job->dev->parent));
       |      |                               
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       |      |                               |
       |      |                               (2) calling 'dev_to_shost' from 
'ufs_bsg_request'
       |
       +--> 'dev_to_shost': events 3-5
              |
              |include/scsi/scsi_host.h:726:33:
              |  726 | static inline struct Scsi_Host *dev_to_shost(struct 
device *dev)
              |      |                                 ^~~~~~~~~~~~
              |      |                                 |
              |      |                                 (3) entry to 
'dev_to_shost'
              |  727 | {
              |  728 |         while (!scsi_is_host_device(dev)) {
              |      |                ~~~~~~~~~~~~~~~~~~~~~~~~~
              |      |                |
              |      |                (4) following 'true' branch...
              |  729 |                 if (!dev->parent)
              |      |                      ~~~~~~~~~~~ 
              |      |                         |
              |      |                         (5) ...to here
              |
       <------+
       |
     'ufs_bsg_request': events 6-8
       |
       |drivers/ufs/core/ufs_bsg.c:90:31:
       |   90 |         struct ufs_hba *hba = 
shost_priv(dev_to_shost(job->dev->parent));
       |      |                               
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       |      |                               |
       |      |                               (6) returning to 
'ufs_bsg_request' from 'dev_to_shost'
       |......
       |  101 |         if (ret)
       |      |            ~                   
       |      |            |
       |      |            (7) following 'false' branch (when 'ret == 0')...
       |......
       |  104 |         bsg_reply->reply_payload_rcv_len = 0;
       |      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       |      |                                          |
       |      |                                          (8) ...to here
       |
     'ufs_bsg_request': event 9
       |
       |drivers/ufs/core/ufshcd-priv.h:256:40:
       |  256 |         return 
pm_runtime_get_sync(&hba->ufs_device_wlun->sdev_gendev);
       |      |                                     ~~~^~~~~~~~~~~~~~~~~
       |      |                                        |
       |      |                                        (9) dereference of NULL 
'dev_to_shost(*job_39(D)->dev.parent)'
       |

vim +/0 +256 drivers/ufs/core/ufshcd-priv.h

4bc26113c60307 drivers/scsi/ufs/ufshcd-priv.h Bart Van Assche 2022-04-19  253  
4bc26113c60307 drivers/scsi/ufs/ufshcd-priv.h Bart Van Assche 2022-04-19  254  
static inline int ufshcd_rpm_get_sync(struct ufs_hba *hba)
4bc26113c60307 drivers/scsi/ufs/ufshcd-priv.h Bart Van Assche 2022-04-19  255  {
4bc26113c60307 drivers/scsi/ufs/ufshcd-priv.h Bart Van Assche 2022-04-19 @256   
return pm_runtime_get_sync(&hba->ufs_device_wlun->sdev_gendev);
4bc26113c60307 drivers/scsi/ufs/ufshcd-priv.h Bart Van Assche 2022-04-19  257  }
4bc26113c60307 drivers/scsi/ufs/ufshcd-priv.h Bart Van Assche 2022-04-19  258  

:::::: The code at line 256 was first introduced by commit
:::::: 4bc26113c603073363ac96f6f1c7d6389bc0b243 scsi: ufs: Split the ufshcd.h 
header file

:::::: TO: Bart Van Assche <[email protected]>
:::::: CC: Martin K. Petersen <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to