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