:::::: 
:::::: Manual check reason: "low confidence static check warning: 
drivers/md/dm-stats.c:658:10: warning: Uninitialized variable: s->stat_flags 
[uninitvar]"
:::::: 

CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Mike Snitzer <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   f2906aa863381afb0015a9eb7fefad885d4e5a56
commit: 8d394bc4adf588ca4a0650745167cb83f86c18c9 dm: fix double accounting of 
flush with data
date:   4 months ago
:::::: branch date: 25 hours ago
:::::: commit date: 4 months ago
compiler: riscv64-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 8d394bc4adf588ca4a0650745167cb83f86c18c9
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

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


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

   drivers/md/dm-stats.c:398:10: warning: Uninitialized variable: s->id 
[uninitvar]
     if (s->id > id)
            ^
   drivers/md/dm-stats.c:456:39: warning: Uninitialized variable: s->program_id 
[uninitvar]
     if (!program || !strcmp(program, s->program_id)) {
                                         ^
>> drivers/md/dm-stats.c:658:10: warning: Uninitialized variable: s->stat_flags 
>> [uninitvar]
     if (s->stat_flags & STAT_PRECISE_TIMESTAMPS && !got_precise_time) {
            ^
   drivers/md/dm-stats.c:633:14: note: Assuming condition is false
    if (unlikely(!bi_sectors))
                ^
   drivers/md/dm-stats.c:658:10: note: Uninitialized variable: s->stat_flags
     if (s->stat_flags & STAT_PRECISE_TIMESTAMPS && !got_precise_time) {
            ^

vim +658 drivers/md/dm-stats.c

fd2ed4d252701d3 Mikulas Patocka   2013-08-16  621  
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  622  void 
dm_stats_account_io(struct dm_stats *stats, unsigned long bi_rw,
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  623                        
sector_t bi_sector, unsigned bi_sectors, bool end,
8d394bc4adf588c Mike Snitzer      2022-02-17  624                        
unsigned long start_time,
c96aec344de0de8 Mikulas Patocka   2015-06-09  625                        struct 
dm_stats_aux *stats_aux)
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  626  {
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  627       struct dm_stat *s;
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  628       sector_t end_sector;
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  629       struct 
dm_stats_last_position *last;
c96aec344de0de8 Mikulas Patocka   2015-06-09  630       bool got_precise_time;
8d394bc4adf588c Mike Snitzer      2022-02-17  631       unsigned long 
duration_jiffies = 0;
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  632  
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  633       if 
(unlikely(!bi_sectors))
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  634               return;
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  635  
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  636       end_sector = bi_sector 
+ bi_sectors;
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  637  
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  638       if (!end) {
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  639               /*
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  640                * A race 
condition can at worst result in the merged flag being
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  641                * 
misrepresented, so we don't have to disable preemption here.
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  642                */
1f125e76f5c134b Christoph Lameter 2014-08-17  643               last = 
raw_cpu_ptr(stats->last);
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  644               
stats_aux->merged =
6aa7de059173a98 Mark Rutland      2017-10-23  645                       
(bi_sector == (READ_ONCE(last->last_sector) &&
528ec5abe6808c3 Mike Christie     2016-06-05  646                               
       ((bi_rw == WRITE) ==
6aa7de059173a98 Mark Rutland      2017-10-23  647                               
        (READ_ONCE(last->last_rw) == WRITE))
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  648                               
       ));
6aa7de059173a98 Mark Rutland      2017-10-23  649               
WRITE_ONCE(last->last_sector, end_sector);
6aa7de059173a98 Mark Rutland      2017-10-23  650               
WRITE_ONCE(last->last_rw, bi_rw);
8d394bc4adf588c Mike Snitzer      2022-02-17  651       } else
8d394bc4adf588c Mike Snitzer      2022-02-17  652               
duration_jiffies = jiffies - start_time;
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  653  
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  654       rcu_read_lock();
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  655  
c96aec344de0de8 Mikulas Patocka   2015-06-09  656       got_precise_time = 
false;
c96aec344de0de8 Mikulas Patocka   2015-06-09  657       
list_for_each_entry_rcu(s, &stats->list, list_entry) {
c96aec344de0de8 Mikulas Patocka   2015-06-09 @658               if 
(s->stat_flags & STAT_PRECISE_TIMESTAMPS && !got_precise_time) {
c96aec344de0de8 Mikulas Patocka   2015-06-09  659                       if 
(!end)
c96aec344de0de8 Mikulas Patocka   2015-06-09  660                               
stats_aux->duration_ns = ktime_to_ns(ktime_get());
c96aec344de0de8 Mikulas Patocka   2015-06-09  661                       else
c96aec344de0de8 Mikulas Patocka   2015-06-09  662                               
stats_aux->duration_ns = ktime_to_ns(ktime_get()) - stats_aux->duration_ns;
c96aec344de0de8 Mikulas Patocka   2015-06-09  663                       
got_precise_time = true;
c96aec344de0de8 Mikulas Patocka   2015-06-09  664               }
c96aec344de0de8 Mikulas Patocka   2015-06-09  665               
__dm_stat_bio(s, bi_rw, bi_sector, end_sector, end, duration_jiffies, 
stats_aux);
c96aec344de0de8 Mikulas Patocka   2015-06-09  666       }
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  667  
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  668       rcu_read_unlock();
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  669  }
fd2ed4d252701d3 Mikulas Patocka   2013-08-16  670  

:::::: The code at line 658 was first introduced by commit
:::::: c96aec344de0de857ef3d7fba53992c7ba311e1e dm stats: support precise 
timestamps

:::::: TO: Mikulas Patocka <[email protected]>
:::::: CC: Mike Snitzer <[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