public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Kai Mäkisara" <Kai.Makisara@kolumbus.fi>,
	linux-scsi@vger.kernel.org, dgilbert@interlog.com
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	martin.petersen@oracle.com,
	James.Bottomley@hansenpartnership.com, jmeneghi@redhat.com,
	"Kai Mäkisara" <Kai.Makisara@kolumbus.fi>
Subject: Re: [PATCH v1 4/7] scsi: scsi_debug: Add read support and update locate for tapes
Date: Tue, 11 Feb 2025 23:50:28 +0800	[thread overview]
Message-ID: <202502112330.2jlgUZM7-lkp@intel.com> (raw)
In-Reply-To: <20250210191232.185207-5-Kai.Makisara@kolumbus.fi>

Hi Kai,

kernel test robot noticed the following build warnings:

[auto build test WARNING on jejb-scsi/for-next]
[also build test WARNING on mkp-scsi/for-next linus/master v6.14-rc2 next-20250210]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Kai-M-kisara/scsi-scsi_debug-First-fixes-for-tapes/20250211-031623
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
patch link:    https://lore.kernel.org/r/20250210191232.185207-5-Kai.Makisara%40kolumbus.fi
patch subject: [PATCH v1 4/7] scsi: scsi_debug: Add read support and update locate for tapes
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20250211/202502112330.2jlgUZM7-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250211/202502112330.2jlgUZM7-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502112330.2jlgUZM7-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from drivers/scsi/scsi_debug.c:31:
   In file included from include/linux/scatterlist.h:8:
   In file included from include/linux/mm.h:2224:
   include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     504 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     505 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     511 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     512 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     524 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     525 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   drivers/scsi/scsi_debug.c:2989:3: warning: variable 'len' is uninitialized when used here [-Wuninitialized]
    2989 |                 len += resp_partition_m_pg(ap, pcontrol, target);
         |                 ^~~
   drivers/scsi/scsi_debug.c:2854:28: note: initialize the variable 'len' to silence this warning
    2854 |         u32 alloc_len, offset, len;
         |                                   ^
         |                                    = 0
>> drivers/scsi/scsi_debug.c:3419:8: warning: variable 'i' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    3419 |                         if (pos == 0)
         |                             ^~~~~~~~
   drivers/scsi/scsi_debug.c:3478:44: note: uninitialized use occurs here
    3478 |                         BEGINNING_OF_P_M_DETECTED_ASCQ, count - i,
         |                                                                 ^
   drivers/scsi/scsi_debug.c:3419:4: note: remove the 'if' if its condition is always false
    3419 |                         if (pos == 0)
         |                         ^~~~~~~~~~~~~
    3420 |                                 goto is_bop;
         |                                 ~~~~~~~~~~~~
    3421 |                         else {
         |                         ~~~~
   drivers/scsi/scsi_debug.c:3378:7: note: initialize the variable 'i' to silence this warning
    3378 |         int i, pos, count;
         |              ^
         |               = 0
   drivers/scsi/scsi_debug.c:3513:10: warning: variable 'i' is uninitialized when used here [-Wuninitialized]
    3513 |         for ( ; i < TAPE_MAX_PARTITIONS; i++)
         |                 ^
   drivers/scsi/scsi_debug.c:3502:7: note: initialize the variable 'i' to silence this warning
    3502 |         int i;
         |              ^
         |               = 0
   6 warnings generated.


vim +3419 drivers/scsi/scsi_debug.c

  3373	
  3374	static int resp_space(struct scsi_cmnd *scp,
  3375			struct sdebug_dev_info *devip)
  3376	{
  3377		unsigned char *cmd = scp->cmnd, code;
  3378		int i, pos, count;
  3379		struct tape_block *blp;
  3380		int partition = devip->tape_partition;
  3381	
  3382		count = get_unaligned_be24(cmd + 2);
  3383		if ((count & 0x800000) != 0) /* extend negative to 32-bit count */
  3384			count |= 0xff000000;
  3385		code = cmd[1] & 0x0f;
  3386	
  3387		pos = devip->tape_location[partition];
  3388		if (code == 0) { /* blocks */
  3389			if (count < 0) {
  3390				count = (-count);
  3391				pos -= 1;
  3392				for (i = 0, blp = devip->tape_blocks[partition] + pos; i < count;
  3393				     i++) {
  3394					if (pos < 0)
  3395						goto is_bop;
  3396					else if (IS_TAPE_BLOCK_FM(blp->fl_size))
  3397						goto is_fm;
  3398					if (i > 0) {
  3399						pos--;
  3400						blp--;
  3401					}
  3402				}
  3403			} else if (count > 0) {
  3404				for (i = 0, blp = devip->tape_blocks[partition] + pos; i < count;
  3405				     i++, pos++, blp++) {
  3406					if (IS_TAPE_BLOCK_EOD(blp->fl_size))
  3407						goto is_eod;
  3408					if (IS_TAPE_BLOCK_FM(blp->fl_size)) {
  3409						pos += 1;
  3410						goto is_fm;
  3411					}
  3412					if (pos >= devip->tape_eop[partition])
  3413						goto is_eop;
  3414				}
  3415			}
  3416		} else if (code == 1) { /* filemarks */
  3417			if (count < 0) {
  3418				count = (-count);
> 3419				if (pos == 0)
  3420					goto is_bop;
  3421				else {
  3422					for (i = 0, blp = devip->tape_blocks[partition] + pos;
  3423					     i < count && pos >= 0; i++, pos--, blp--) {
  3424						for (pos--, blp-- ; !IS_TAPE_BLOCK_FM(blp->fl_size) &&
  3425							     pos >= 0; pos--, blp--)
  3426							; /* empty */
  3427						if (pos < 0)
  3428							goto is_bop;
  3429					}
  3430				}
  3431				pos += 1;
  3432			} else if (count > 0) {
  3433				for (i = 0, blp = devip->tape_blocks[partition] + pos;
  3434				     i < count; i++, pos++, blp++) {
  3435					for ( ; !IS_TAPE_BLOCK_FM(blp->fl_size) &&
  3436						      !IS_TAPE_BLOCK_EOD(blp->fl_size) &&
  3437						      pos < devip->tape_eop[partition];
  3438					      pos++, blp++)
  3439						; /* empty */
  3440					if (IS_TAPE_BLOCK_EOD(blp->fl_size))
  3441						goto is_eod;
  3442					if (pos >= devip->tape_eop[partition])
  3443						goto is_eop;
  3444				}
  3445			}
  3446		} else if (code == 3) { /* EOD */
  3447			for (blp = devip->tape_blocks[partition] + pos;
  3448			     !IS_TAPE_BLOCK_EOD(blp->fl_size) && pos < devip->tape_eop[partition];
  3449			     pos++, blp++)
  3450				; /* empty */
  3451			if (pos >= devip->tape_eop[partition])
  3452				goto is_eop;
  3453		} else {
  3454			/* sequential filemarks not supported */
  3455			mk_sense_invalid_fld(scp, SDEB_IN_CDB, 8, -1);
  3456			return check_condition_result;
  3457		}
  3458		devip->tape_location[partition] = pos;
  3459		return 0;
  3460	
  3461	is_fm:
  3462		devip->tape_location[partition] = pos;
  3463		mk_sense_info_tape(scp, NO_SENSE, NO_ADDITIONAL_SENSE,
  3464				FILEMARK_DETECTED_ASCQ, count - i,
  3465				SENSE_FLAG_FILEMARK);
  3466		return check_condition_result;
  3467	
  3468	is_eod:
  3469		devip->tape_location[partition] = pos;
  3470		mk_sense_info_tape(scp, BLANK_CHECK, NO_ADDITIONAL_SENSE,
  3471				EOD_DETECTED_ASCQ, count - i,
  3472				0);
  3473		return check_condition_result;
  3474	
  3475	is_bop:
  3476		devip->tape_location[partition] = 0;
  3477		mk_sense_info_tape(scp, NO_SENSE, NO_ADDITIONAL_SENSE,
  3478				BEGINNING_OF_P_M_DETECTED_ASCQ, count - i,
  3479				SENSE_FLAG_EOM);
  3480		devip->tape_location[partition] = 0;
  3481		return check_condition_result;
  3482	
  3483	is_eop:
  3484		devip->tape_location[partition] = devip->tape_eop[partition] - 1;
  3485		mk_sense_info_tape(scp, MEDIUM_ERROR, NO_ADDITIONAL_SENSE,
  3486				EOP_EOM_DETECTED_ASCQ, (unsigned int)i,
  3487				SENSE_FLAG_EOM);
  3488		return check_condition_result;
  3489	}
  3490	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

  reply	other threads:[~2025-02-11 15:51 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-10 19:12 [PATCH v1 0/7] scsi: scsi_debug: Add more tape support Kai Mäkisara
2025-02-10 19:12 ` [PATCH v1 1/7] scsi: scsi_debug: First fixes for tapes Kai Mäkisara
2025-02-10 19:12 ` [PATCH v1 2/7] scsi: scsi_debug: Add READ BLOCK LIMITS and modify LOAD " Kai Mäkisara
2025-02-11 10:41   ` kernel test robot
2025-02-11 14:11   ` [PATCH v1b " Kai Mäkisara
2025-02-13  3:11     ` Martin K. Petersen
2025-02-10 19:12 ` [PATCH v1 3/7] scsi: scsi_debug: Add write support with block lengths and 4 bytes of data Kai Mäkisara
2025-02-11 13:08   ` kernel test robot
2025-02-11 14:11   ` [PATCH v1b " Kai Mäkisara
2025-02-10 19:12 ` [PATCH v1 4/7] scsi: scsi_debug: Add read support and update locate for tapes Kai Mäkisara
2025-02-11 15:50   ` kernel test robot [this message]
2025-02-11 21:26   ` [PATCH v1b " Kai Mäkisara
2025-02-10 19:12 ` [PATCH v1 5/7] scsi: scsi_debug: Add compression mode page " Kai Mäkisara
2025-02-10 19:12 ` [PATCH v1 6/7] scsi: scsi_debug: Reset tape setting at device reset Kai Mäkisara
2025-02-10 19:12 ` [PATCH v1 7/7] scsi: scsi_debug: Add support for partitioning the tape Kai Mäkisara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202502112330.2jlgUZM7-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=Kai.Makisara@kolumbus.fi \
    --cc=dgilbert@interlog.com \
    --cc=jmeneghi@redhat.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=martin.petersen@oracle.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox