tree:   git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git misc
head:   52cb5cbe9b8ed89db0f8c9eeec8410fcfb0887fd
commit: 6f3b5679f2af1ef3becbf7832d2bce977907c08a [61/65] [SCSI] fnic: fixing 
issues in device and firmware reset code
config: make ARCH=i386 allmodconfig

All warnings:

   drivers/scsi/fnic/fnic_scsi.c:190:39: sparse: context imbalance in 
'__fnic_set_state_flags' - unexpected unlock
   drivers/scsi/fnic/fnic_scsi.c:419:19: sparse: context imbalance in 
'fnic_queuecommand_lck' - unexpected unlock
   drivers/scsi/fnic/fnic_scsi.c:2411:49: sparse: context imbalance in 
'fnic_is_abts_pending' - different lock contexts for basic block
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_queuecommand_lck':
>> drivers/scsi/fnic/fnic_scsi.c:441:3: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:441:3: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:493:3: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:493:3: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:515:2: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:515:2: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:515:2: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_fcpio_ack_handler':
>> drivers/scsi/fnic/fnic_scsi.c:703:2: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_fcpio_icmnd_cmpl_handler':
>> drivers/scsi/fnic/fnic_scsi.c:747:3: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:747:3: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:904:2: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:904:2: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:904:2: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_fcpio_itmf_cmpl_handler':
>> drivers/scsi/fnic/fnic_scsi.c:1022:5: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:1022:5: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:1022:5: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:1044:4: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:1044:4: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:1044:4: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_scsi.c:1059:4: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
--
   drivers/scsi/fnic/fnic_trace.c: In function 'fnic_trace_get_buf':
>> drivers/scsi/fnic/fnic_trace.c:80:9: warning: cast to pointer from integer 
>> of different size [-Wint-to-pointer-cast]
   drivers/scsi/fnic/fnic_trace.c: In function 'fnic_get_trace_data':
>> drivers/scsi/fnic/fnic_trace.c:112:10: warning: cast to pointer from integer 
>> of different size [-Wint-to-pointer-cast]
>> drivers/scsi/fnic/fnic_trace.c:149:10: warning: cast to pointer from integer 
>> of different size [-Wint-to-pointer-cast]
   drivers/scsi/fnic/fnic_trace.c: In function 'fnic_trace_buf_init':
>> drivers/scsi/fnic/fnic_trace.c:200:21: warning: cast from pointer to integer 
>> of different size [-Wpointer-to-int-cast]
>> drivers/scsi/fnic/fnic_trace.c:207:2: warning: cast to pointer from integer 
>> of different size [-Wint-to-pointer-cast]
>> drivers/scsi/fnic/fnic_trace.c:215:10: warning: cast to pointer from integer 
>> of different size [-Wint-to-pointer-cast]
   drivers/scsi/fnic/fnic_trace.c: In function 'fnic_trace_free':
>> drivers/scsi/fnic/fnic_trace.c:260:9: warning: cast to pointer from integer 
>> of different size [-Wint-to-pointer-cast]

sparse warnings: (new ones prefixed by >>)

>> drivers/scsi/fnic/fnic_scsi.c:190:39: sparse: context imbalance in 
>> '__fnic_set_state_flags' - unexpected unlock
   drivers/scsi/fnic/fnic_scsi.c:419:19: sparse: context imbalance in 
'fnic_queuecommand_lck' - unexpected unlock
>> drivers/scsi/fnic/fnic_scsi.c:2411:49: sparse: context imbalance in 
>> 'fnic_is_abts_pending' - different lock contexts for basic block
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_queuecommand_lck':
   drivers/scsi/fnic/fnic_scsi.c:441:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:441:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:493:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:493:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:515:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:515:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:515:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_fcpio_ack_handler':
   drivers/scsi/fnic/fnic_scsi.c:703:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_fcpio_icmnd_cmpl_handler':
   drivers/scsi/fnic/fnic_scsi.c:747:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:747:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:904:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:904:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:904:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_fcpio_itmf_cmpl_handler':
   drivers/scsi/fnic/fnic_scsi.c:1022:5: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1022:5: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1022:5: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1044:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1044:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1044:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1059:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1059:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1059:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_cleanup_io':
   drivers/scsi/fnic/fnic_scsi.c:1213:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1213:4: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_wq_copy_cleanup_handler':
   drivers/scsi/fnic/fnic_scsi.c:1276:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1276:3: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_abort_cmd':
   drivers/scsi/fnic/fnic_scsi.c:1709:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:1709:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c: In function 'fnic_device_reset':
   drivers/scsi/fnic/fnic_scsi.c:2190:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
   drivers/scsi/fnic/fnic_scsi.c:2190:2: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]

vim +441 drivers/scsi/fnic/fnic_scsi.c

   413                  return SCSI_MLQUEUE_HOST_BUSY;
   414  
   415          atomic_inc(&fnic->in_flight);
   416  
   417          /*
   418           * Release host lock, use driver resource specific locks from 
here.
   419           * Don't re-enable interrupts in case they were disabled prior 
to the
   420           * caller disabling them.
   421           */
   422          spin_unlock(lp->host->host_lock);
   423          CMD_FLAGS(sc) = FNIC_CDB_REQ;
   424  
   425          /* Get a new io_req for this SCSI IO */
   426          io_req = mempool_alloc(fnic->io_req_pool, GFP_ATOMIC);
   427          if (!io_req) {
   428                  ret = SCSI_MLQUEUE_HOST_BUSY;
   429                  goto out;
   430          }
   431          memset(io_req, 0, sizeof(*io_req));
   432  
   433          /* Map the data buffer */
   434          sg_count = scsi_dma_map(sc);
   435          if (sg_count < 0) {
   436                  mempool_free(io_req, fnic->io_req_pool);
   437                  goto out;
   438          }
   439  
   440          /* Determine the type of scatter/gather list we need */
 > 441          io_req->sgl_cnt = sg_count;
   442          io_req->sgl_type = FNIC_SGL_CACHE_DFLT;
   443          if (sg_count > FNIC_DFLT_SG_DESC_CNT)
   444                  io_req->sgl_type = FNIC_SGL_CACHE_MAX;
   445  
   446          if (sg_count) {
   447                  io_req->sgl_list =
   448                          
mempool_alloc(fnic->io_sgl_pool[io_req->sgl_type],
   449                                        GFP_ATOMIC);
   450                  if (!io_req->sgl_list) {
   451                          ret = SCSI_MLQUEUE_HOST_BUSY;
   452                          scsi_dma_unmap(sc);
   453                          mempool_free(io_req, fnic->io_req_pool);
   454                          goto out;
   455                  }
   456  
   457                  /* Cache sgl list allocated address before alignment */
   458                  io_req->sgl_list_alloc = io_req->sgl_list;
   459                  ptr = (unsigned long) io_req->sgl_list;
   460                  if (ptr % FNIC_SG_DESC_ALIGN) {
   461                          io_req->sgl_list = (struct host_sg_desc *)
   462                                  (((unsigned long) ptr
   463                                    + FNIC_SG_DESC_ALIGN - 1)
   464                                   & ~(FNIC_SG_DESC_ALIGN - 1));
   465                  }
   466          }
   467  
   468          /* initialize rest of io_req */
   469          io_req->port_id = rport->port_id;
   470          CMD_STATE(sc) = FNIC_IOREQ_CMD_PENDING;
   471          CMD_SP(sc) = (char *)io_req;
   472          sc->scsi_done = done;
   473  
   474          /* create copy wq desc and enqueue it */
   475          wq = &fnic->wq_copy[0];
   476          ret = fnic_queue_wq_copy_desc(fnic, wq, io_req, sc, sg_count);
   477          if (ret) {
   478                  /*
   479                   * In case another thread cancelled the request,
   480                   * refetch the pointer under the lock.
   481                   */
   482                  spinlock_t *io_lock = fnic_io_lock_hash(fnic, sc);
   483  
   484                  spin_lock_irqsave(io_lock, flags);
   485                  io_req = (struct fnic_io_req *)CMD_SP(sc);
   486                  CMD_SP(sc) = NULL;
   487                  CMD_STATE(sc) = FNIC_IOREQ_CMD_COMPLETE;
   488                  spin_unlock_irqrestore(io_lock, flags);
   489                  if (io_req) {
   490                          fnic_release_ioreq_buf(fnic, io_req, sc);
   491                          mempool_free(io_req, fnic->io_req_pool);
   492                  }
   493          }
   494  out:
   495          atomic_dec(&fnic->in_flight);
   496          /* acquire host lock before returning to SCSI */
   497          spin_lock(lp->host->host_lock);
   498          return ret;
   499  }
   500  
   501  DEF_SCSI_QCMD(fnic_queuecommand)
   502  
   503  /*
   504   * fnic_fcpio_fw_reset_cmpl_handler
   505   * Routine to handle fw reset completion
   506   */
   507  static int fnic_fcpio_fw_reset_cmpl_handler(struct fnic *fnic,
   508                                              struct fcpio_fw_req *desc)
   509  {
   510          u8 type;
   511          u8 hdr_status;
   512          struct fcpio_tag tag;
   513          int ret = 0;
   514          unsigned long flags;
   515  
   516          fcpio_header_dec(&desc->hdr, &type, &hdr_status, &tag);
   517  
   518          /* Clean up all outstanding io requests */

---
0-DAY kernel build testing backend              Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to