Hi Christoph,

[auto build test results on v4.3-rc3 -- if it's inappropriate base, please 
ignore]

config: x86_64-allmodconfig (attached as .config)
reproduce:
  git checkout 6e392493504e88ec3b44596c22f08acf4eed11ee
  # save the attached .config to linux build tree
  make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   drivers/scsi/3w-9xxx.c:394:15: sparse: cast to restricted __le16
   drivers/scsi/3w-9xxx.c:491:61: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:491:61: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:492:58: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:492:58:    expected unsigned int [unsigned] 
[usertype] length
   drivers/scsi/3w-9xxx.c:492:58:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:494:54: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:494:54:    expected unsigned short [unsigned] 
[usertype] parameter_count
   drivers/scsi/3w-9xxx.c:494:54:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:499:25: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:499:25:    expected unsigned short [unsigned] 
[usertype] table_id
   drivers/scsi/3w-9xxx.c:499:25:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:500:29: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:500:29:    expected unsigned short [unsigned] 
[usertype] parameter_id
   drivers/scsi/3w-9xxx.c:500:29:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:501:37: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:501:37:    expected unsigned short [unsigned] 
[usertype] parameter_size_bytes
   drivers/scsi/3w-9xxx.c:501:37:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:508:23: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:508:23:    expected unsigned int [unsigned] 
[assigned] [usertype] schedulertime
   drivers/scsi/3w-9xxx.c:508:23:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:996:17: sparse: cast to restricted __le16
   drivers/scsi/3w-9xxx.c:1129:41: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1129:41:    expected unsigned short [unsigned] 
[usertype] message_credits
   drivers/scsi/3w-9xxx.c:1129:41:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1135:34: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1135:34:    expected unsigned int [unsigned] 
[usertype] features
   drivers/scsi/3w-9xxx.c:1135:34:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1139:40: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1139:40:    expected unsigned short [unsigned] 
[usertype] fw_srl
   drivers/scsi/3w-9xxx.c:1139:40:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1140:44: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1140:44:    expected unsigned short [unsigned] 
[usertype] fw_arch_id
   drivers/scsi/3w-9xxx.c:1140:44:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1141:43: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1141:43:    expected unsigned short [unsigned] 
[usertype] fw_branch
   drivers/scsi/3w-9xxx.c:1141:43:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1142:42: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1142:42:    expected unsigned short [unsigned] 
[usertype] fw_build
   drivers/scsi/3w-9xxx.c:1142:42:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1154:43: sparse: cast to restricted __le16
   drivers/scsi/3w-9xxx.c:1155:47: sparse: cast to restricted __le16
   drivers/scsi/3w-9xxx.c:1156:46: sparse: cast to restricted __le16
   drivers/scsi/3w-9xxx.c:1157:45: sparse: cast to restricted __le16
   drivers/scsi/3w-9xxx.c:1158:48: sparse: cast to restricted __le32
   drivers/scsi/3w-9xxx.c:1390:46: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1390:46:    expected unsigned short [unsigned] 
[usertype] request_id__lunl
   drivers/scsi/3w-9xxx.c:1390:46:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1393:58: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:1393:58: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:1394:55: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1394:55:    expected unsigned int [unsigned] 
[usertype] length
   drivers/scsi/3w-9xxx.c:1394:55:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1396:47: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1396:47:    expected unsigned short [unsigned] 
[usertype] sgl_entries__lunh
   drivers/scsi/3w-9xxx.c:1396:47:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1408:40: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:1408:40: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:1409:37: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1409:37:    expected unsigned int [unsigned] 
[usertype] length
   drivers/scsi/3w-9xxx.c:1409:37:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1835:50: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1835:50:    expected unsigned short [unsigned] 
[usertype] request_id__lunl
   drivers/scsi/3w-9xxx.c:1835:50:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1838:50: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1838:50:    expected unsigned short [unsigned] 
[usertype] request_id__lunl
   drivers/scsi/3w-9xxx.c:1838:50:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1855:70: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:1855:70: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:1856:67: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1856:67:    expected unsigned int [unsigned] 
[usertype] length
   drivers/scsi/3w-9xxx.c:1856:67:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1863:78: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:1863:78: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:1864:75: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1864:75:    expected unsigned int [unsigned] 
[usertype] length
   drivers/scsi/3w-9xxx.c:1864:75:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1865:82: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:1865:82: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:1871:59: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1871:59:    expected unsigned short [unsigned] 
[usertype] sgl_entries__lunh
   drivers/scsi/3w-9xxx.c:1871:59:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1876:62: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:1876:62: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:1877:59: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1877:59:    expected unsigned int [unsigned] 
[usertype] length
   drivers/scsi/3w-9xxx.c:1877:59:    got restricted __le32 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1878:66: sparse: restricted __le64 degrades to integer
   drivers/scsi/3w-9xxx.c:1878:66: sparse: restricted __le32 degrades to integer
   drivers/scsi/3w-9xxx.c:1883:51: sparse: incorrect type in assignment 
(different base types)
   drivers/scsi/3w-9xxx.c:1883:51:    expected unsigned short [unsigned] 
[usertype] sgl_entries__lunh
   drivers/scsi/3w-9xxx.c:1883:51:    got restricted __le16 [usertype] <noident>
   drivers/scsi/3w-9xxx.c:1922:33: sparse: undefined identifier 'srb'
   drivers/scsi/3w-9xxx.c:1781:40: sparse: undefined identifier 'cmd'
   drivers/scsi/3w-9xxx.c:1787:40: sparse: undefined identifier 'cmd'
   drivers/scsi/3w-9xxx.c: In function 'twa_scsi_queue_lck':
>> drivers/scsi/3w-9xxx.c:1781:26: error: 'cmd' undeclared (first use in this 
>> function)
      if (twa_command_mapped(cmd))
                             ^
   drivers/scsi/3w-9xxx.c:1781:26: note: each undeclared identifier is reported 
only once for each function it appears in
   drivers/scsi/3w-9xxx.c: In function 'twa_scsiop_execute_scsi_complete':
>> drivers/scsi/3w-9xxx.c:1922:26: error: 'srb' undeclared (first use in this 
>> function)
     if (!twa_command_mapped(srb) &&
                             ^

vim +/cmd +1781 drivers/scsi/3w-9xxx.c

  1775          /* Save the scsi command for use by the ISR */
  1776          tw_dev->srb[request_id] = SCpnt;
  1777  
  1778          retval = twa_scsiop_execute_scsi(tw_dev, request_id, NULL, 0, 
NULL);
  1779          switch (retval) {
  1780          case SCSI_MLQUEUE_HOST_BUSY:
> 1781                  if (twa_command_mapped(cmd))
  1782                          scsi_dma_unmap(SCpnt);
  1783                  twa_free_request_id(tw_dev, request_id);
  1784                  break;
  1785          case 1:
  1786                  SCpnt->result = (DID_ERROR << 16);
  1787                  if (twa_command_mapped(cmd))
  1788                          scsi_dma_unmap(SCpnt);
  1789                  done(SCpnt);
  1790                  tw_dev->state[request_id] = TW_S_COMPLETED;
  1791                  twa_free_request_id(tw_dev, request_id);
  1792                  retval = 0;
  1793          }
  1794  out:
  1795          return retval;
  1796  } /* End twa_scsi_queue() */
  1797  
  1798  static DEF_SCSI_QCMD(twa_scsi_queue)
  1799  
  1800  /* This function hands scsi cdb's to the firmware */
  1801  static int twa_scsiop_execute_scsi(TW_Device_Extension *tw_dev, int 
request_id, char *cdb, int use_sg, TW_SG_Entry *sglistarg)
  1802  {
  1803          TW_Command_Full *full_command_packet;
  1804          TW_Command_Apache *command_packet;
  1805          u32 num_sectors = 0x0;
  1806          int i, sg_count;
  1807          struct scsi_cmnd *srb = NULL;
  1808          struct scatterlist *sglist = NULL, *sg;
  1809          int retval = 1;
  1810  
  1811          if (tw_dev->srb[request_id]) {
  1812                  srb = tw_dev->srb[request_id];
  1813                  if (scsi_sglist(srb))
  1814                          sglist = scsi_sglist(srb);
  1815          }
  1816  
  1817          /* Initialize command packet */
  1818          full_command_packet = tw_dev->command_packet_virt[request_id];
  1819          full_command_packet->header.header_desc.size_header = 128;
  1820          full_command_packet->header.status_block.error = 0;
  1821          full_command_packet->header.status_block.severity__reserved = 0;
  1822  
  1823          command_packet = &full_command_packet->command.newcommand;
  1824          command_packet->status = 0;
  1825          command_packet->opcode__reserved = TW_OPRES_IN(0, 
TW_OP_EXECUTE_SCSI);
  1826  
  1827          /* We forced 16 byte cdb use earlier */
  1828          if (!cdb)
  1829                  memcpy(command_packet->cdb, srb->cmnd, TW_MAX_CDB_LEN);
  1830          else
  1831                  memcpy(command_packet->cdb, cdb, TW_MAX_CDB_LEN);
  1832  
  1833          if (srb) {
  1834                  command_packet->unit = srb->device->id;
  1835                  command_packet->request_id__lunl =
  1836                          cpu_to_le16(TW_REQ_LUN_IN(srb->device->lun, 
request_id));
  1837          } else {
  1838                  command_packet->request_id__lunl =
  1839                          cpu_to_le16(TW_REQ_LUN_IN(0, request_id));
  1840                  command_packet->unit = 0;
  1841          }
  1842  
  1843          command_packet->sgl_offset = 16;
  1844  
  1845          if (!sglistarg) {
  1846                  /* Map sglist from scsi layer to cmd packet */
  1847  
  1848                  if (scsi_sg_count(srb)) {
  1849                          if (!twa_command_mapped(srb)) {
  1850                                  if (srb->sc_data_direction == 
DMA_TO_DEVICE ||
  1851                                      srb->sc_data_direction == 
DMA_BIDIRECTIONAL)
  1852                                          scsi_sg_copy_to_buffer(srb,
  1853                                                                 
tw_dev->generic_buffer_virt[request_id],
  1854                                                                 
TW_SECTOR_SIZE);
  1855                                  command_packet->sg_list[0].address = 
TW_CPU_TO_SGL(tw_dev->generic_buffer_phys[request_id]);
  1856                                  command_packet->sg_list[0].length = 
cpu_to_le32(TW_MIN_SGL_LENGTH);
  1857                          } else {
  1858                                  sg_count = scsi_dma_map(srb);
  1859                                  if (sg_count < 0)
  1860                                          goto out;
  1861  
  1862                                  scsi_for_each_sg(srb, sg, sg_count, i) {
  1863                                          
command_packet->sg_list[i].address = TW_CPU_TO_SGL(sg_dma_address(sg));
  1864                                          
command_packet->sg_list[i].length = cpu_to_le32(sg_dma_len(sg));
  1865                                          if 
(command_packet->sg_list[i].address & TW_CPU_TO_SGL(TW_ALIGNMENT_9000_SGL)) {
  1866                                                  TW_PRINTK(tw_dev->host, 
TW_DRIVER, 0x2e, "Found unaligned sgl address during execute scsi");
  1867                                                  goto out;
  1868                                          }
  1869                                  }
  1870                          }
  1871                          command_packet->sgl_entries__lunh = 
cpu_to_le16(TW_REQ_LUN_IN((srb->device->lun >> 4), 
scsi_sg_count(tw_dev->srb[request_id])));
  1872                  }
  1873          } else {
  1874                  /* Internal cdb post */
  1875                  for (i = 0; i < use_sg; i++) {
  1876                          command_packet->sg_list[i].address = 
TW_CPU_TO_SGL(sglistarg[i].address);
  1877                          command_packet->sg_list[i].length = 
cpu_to_le32(sglistarg[i].length);
> 1878                          if (command_packet->sg_list[i].address & 
> TW_CPU_TO_SGL(TW_ALIGNMENT_9000_SGL)) {
  1879                                  TW_PRINTK(tw_dev->host, TW_DRIVER, 
0x2f, "Found unaligned sgl address during internal post");
  1880                                  goto out;
  1881                          }
  1882                  }
  1883                  command_packet->sgl_entries__lunh = 
cpu_to_le16(TW_REQ_LUN_IN(0, use_sg));
  1884          }
  1885  
  1886          if (srb) {
  1887                  if (srb->cmnd[0] == READ_6 || srb->cmnd[0] == WRITE_6)
  1888                          num_sectors = (u32)srb->cmnd[4];
  1889  
  1890                  if (srb->cmnd[0] == READ_10 || srb->cmnd[0] == WRITE_10)
  1891                          num_sectors = (u32)srb->cmnd[8] | 
((u32)srb->cmnd[7] << 8);
  1892          }
  1893  
  1894          /* Update sector statistic */
  1895          tw_dev->sector_count = num_sectors;
  1896          if (tw_dev->sector_count > tw_dev->max_sector_count)
  1897                  tw_dev->max_sector_count = tw_dev->sector_count;
  1898  
  1899          /* Update SG statistics */
  1900          if (srb) {
  1901                  tw_dev->sgl_entries = 
scsi_sg_count(tw_dev->srb[request_id]);
  1902                  if (tw_dev->sgl_entries > tw_dev->max_sgl_entries)
  1903                          tw_dev->max_sgl_entries = tw_dev->sgl_entries;
  1904          }
  1905  
  1906          /* Now post the command to the board */
  1907          if (srb) {
  1908                  retval = twa_post_command_packet(tw_dev, request_id, 0);
  1909          } else {
  1910                  twa_post_command_packet(tw_dev, request_id, 1);
  1911                  retval = 0;
  1912          }
  1913  out:
  1914          return retval;
  1915  } /* End twa_scsiop_execute_scsi() */
  1916  
  1917  /* This function completes an execute scsi operation */
  1918  static void twa_scsiop_execute_scsi_complete(TW_Device_Extension 
*tw_dev, int request_id)
  1919  {
  1920          struct scsi_cmnd *cmd = tw_dev->srb[request_id];
  1921  
> 1922          if (!twa_command_mapped(srb) &&
  1923              (cmd->sc_data_direction == DMA_FROM_DEVICE ||
  1924               cmd->sc_data_direction == DMA_BIDIRECTIONAL)) {
  1925                  if (scsi_sg_count(cmd) == 1) {

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: Binary data

Reply via email to