Hello Hannes Reinecke, The patch 081ff398c56c: "scsi: myrb: Add Mylex RAID controller (block interface)" from Oct 17, 2018, leads to the following static checker warning: drivers/scsi/myrb.c:1614 myrb_ldev_queuecommand() warn: assigning signed to unsigned: 'mbox->type5.sg_count = nsge' '(-12),0,2-s32max' drivers/scsi/myrb.c 1579 if (scmd->sc_data_direction == DMA_NONE) 1580 goto submit; 1581 nsge = scsi_dma_map(scmd); ^^^^^^^^^^^^^^^^^^^^^^^^^ nsge can be -ENOMEM; 1582 if (nsge == 1) { 1583 sgl = scsi_sglist(scmd); 1584 if (scmd->sc_data_direction == DMA_FROM_DEVICE) 1585 mbox->type5.opcode = MYRB_CMD_READ; 1586 else 1587 mbox->type5.opcode = MYRB_CMD_WRITE; 1588 1589 mbox->type5.ld.xfer_len = block_cnt; 1590 mbox->type5.ld.ldev_num = sdev->id; 1591 mbox->type5.lba = lba; 1592 mbox->type5.addr = (u32)sg_dma_address(sgl); 1593 } else { 1594 struct myrb_sge *hw_sgl; 1595 dma_addr_t hw_sgl_addr; 1596 int i; 1597 1598 hw_sgl = dma_pool_alloc(cb->sg_pool, GFP_ATOMIC, &hw_sgl_addr); 1599 if (!hw_sgl) 1600 return SCSI_MLQUEUE_HOST_BUSY; 1601 1602 cmd_blk->sgl = hw_sgl; 1603 cmd_blk->sgl_addr = hw_sgl_addr; 1604 1605 if (scmd->sc_data_direction == DMA_FROM_DEVICE) 1606 mbox->type5.opcode = MYRB_CMD_READ_SG; 1607 else 1608 mbox->type5.opcode = MYRB_CMD_WRITE_SG; 1609 1610 mbox->type5.ld.xfer_len = block_cnt; 1611 mbox->type5.ld.ldev_num = sdev->id; 1612 mbox->type5.lba = lba; 1613 mbox->type5.addr = hw_sgl_addr; 1614 mbox->type5.sg_count = nsge; 1615 1616 scsi_for_each_sg(scmd, sgl, nsge, i) { 1617 hw_sgl->sge_addr = (u32)sg_dma_address(sgl); 1618 hw_sgl->sge_count = (u32)sg_dma_len(sgl); 1619 hw_sgl++; 1620 } 1621 } 1622 submit: 1623 spin_lock_irqsave(&cb->queue_lock, flags); regards, dan carpenter