public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [bug report] scsi: sg: fix SG_DXFER_FROM_DEV transfers
@ 2017-07-14  7:46 Dan Carpenter
  2017-07-14  9:01 ` Johannes Thumshirn
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2017-07-14  7:46 UTC (permalink / raw)
  To: jthumshirn; +Cc: linux-scsi

Hello Johannes Thumshirn,

The patch 68c59fcea1f2: "scsi: sg: fix SG_DXFER_FROM_DEV transfers"
from Jul 7, 2017, leads to the following static checker warning:

	drivers/scsi/sg.c:762 sg_is_valid_dxfer()
	warn: unsigned 'hp->dxfer_len' is never less than zero.

drivers/scsi/sg.c
   754  static bool sg_is_valid_dxfer(sg_io_hdr_t *hp)
   755  {
   756          switch (hp->dxfer_direction) {
   757          case SG_DXFER_NONE:
   758                  if (hp->dxferp || hp->dxfer_len > 0)
   759                          return false;
   760                  return true;
   761          case SG_DXFER_FROM_DEV:
   762                  if (hp->dxfer_len < 0)
                            ^^^^^^^^^^^^^^^^^
Not possible.

   763                          return false;
   764                  return true;
   765          case SG_DXFER_TO_DEV:
   766          case SG_DXFER_TO_FROM_DEV:
   767                  if (!hp->dxferp || hp->dxfer_len == 0)
   768                          return false;
   769                  return true;
   770          case SG_DXFER_UNKNOWN:
   771                  if ((!hp->dxferp && hp->dxfer_len) ||
   772                      (hp->dxferp && hp->dxfer_len == 0))
   773                          return false;
   774                  return true;
   775          default:
   776                  return false;
   777          }
   778  }

Btw, I was looking up the type of hp->dxfer_len and I noticed that the
documentation for hp->resid is wrong.  It says:

	int resid;                  /* [o] dxfer_len - actual_transferred */

My guess is that resid stands for Response ID but I'm not positive.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-07-14  9:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-14  7:46 [bug report] scsi: sg: fix SG_DXFER_FROM_DEV transfers Dan Carpenter
2017-07-14  9:01 ` Johannes Thumshirn
2017-07-14  9:16   ` Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox