All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: hare@suse.de
Cc: linux-scsi@vger.kernel.org
Subject: [bug report] scsi: myrs: Add Mylex RAID controller (SCSI interface)
Date: Tue, 13 Feb 2018 17:37:27 +0300	[thread overview]
Message-ID: <20180213143727.GA21178@mwanda> (raw)

Hello Hannes Reinecke,

The patch 8a8606895947: "scsi: myrs: Add Mylex RAID controller (SCSI
interface)" from Jan 24, 2018, leads to the following static checker
warning:

	drivers/scsi/myrs.c:479 myrs_get_event()
	warn: right shifting more than type allows 16 vs 16

drivers/scsi/myrs.c
   461  static unsigned char
   462  myrs_get_event(myrs_hba *cs, unsigned short event_num,
                                     ^^^^^^^^^^^^^^^^^^^^^^^^

   463                 myrs_event *event_buf)
   464  {
   465          struct pci_dev *pdev = cs->pdev;
   466          dma_addr_t event_addr;
   467          myrs_cmdblk *cmd_blk = &cs->mcmd_blk;
   468          myrs_cmd_mbox *mbox = &cmd_blk->mbox;
   469          myrs_sgl *sgl;
   470          unsigned char status;
   471  
   472          event_addr = dma_map_single(&pdev->dev, event_buf,
   473                                      sizeof(myrs_event), DMA_FROM_DEVICE);
   474          if (dma_mapping_error(&pdev->dev, event_addr))
   475                  return DAC960_V2_AbnormalCompletion;
   476  
   477          mbox->GetEvent.opcode = DAC960_V2_IOCTL;
   478          mbox->GetEvent.dma_size = sizeof(myrs_event);
   479          mbox->GetEvent.evnum_upper = event_num >> 16;
                                             ^^^^^^^^^^^^^^^

This is always going to be zero.

   480          mbox->GetEvent.ctlr_num = 0;
   481          mbox->GetEvent.ioctl_opcode = DAC960_V2_GetEvent;
   482          mbox->GetEvent.evnum_lower = event_num & 0xFFFF;
   483          sgl = &mbox->GetEvent.dma_addr;
   484          sgl->sge[0].sge_addr = event_addr;
   485          sgl->sge[0].sge_count = mbox->GetEvent.dma_size;
   486          myrs_exec_cmd(cs, cmd_blk);
   487          status = cmd_blk->status;
   488          dma_unmap_single(&pdev->dev, event_addr,
   489                           sizeof(myrs_event), DMA_FROM_DEVICE);
   490  
   491          return status;
   492  }

This warning is probably a false positive which you can ignore but what
made me question it was looking at the caller:

drivers/scsi/myrs.c
  2222  static void myrs_monitor(struct work_struct *work)
  2223  {
  2224          myrs_hba *cs = container_of(work, myrs_hba, monitor_work.work);
  2225          struct Scsi_Host *shost = cs->host;
  2226          myrs_ctlr_info *info = cs->ctlr_info;
  2227          unsigned int epoch = cs->fwstat_buf->epoch;
  2228          unsigned long interval = MYRS_PRIMARY_MONITOR_INTERVAL;
  2229          unsigned char status;
  2230  
  2231          dev_dbg(&shost->shost_gendev, "monitor tick\n");
  2232  
  2233          status = myrs_get_fwstatus(cs);
  2234  
  2235          if (cs->needs_update) {
  2236                  cs->needs_update = false;
  2237                  mutex_lock(&cs->cinfo_mutex);
  2238                  status = myrs_get_ctlr_info(cs);
  2239                  mutex_unlock(&cs->cinfo_mutex);
  2240          }
  2241          if (cs->fwstat_buf->next_evseq - cs->next_evseq > 0) {
  2242                  status = myrs_get_event(cs, cs->next_evseq,
                                                    ^^^^^^^^^^^^^^
This is an int.

  2243                                          cs->event_buf);
  2244                  if (status == DAC960_V2_NormalCompletion) {
  2245                          myrs_log_event(cs, cs->event_buf);
  2246                          cs->next_evseq++;
                                ^^^^^^^^^^^^^^^^
And I guess this is where we set cs->next_evseq.

  2247                          interval = 1;
  2248                  }
  2249          }

regards,
dan carpenter

             reply	other threads:[~2018-02-13 14:47 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-13 14:37 Dan Carpenter [this message]
2018-02-14  2:22 ` [bug report] scsi: myrs: Add Mylex RAID controller (SCSI interface) Martin K. Petersen
  -- strict thread matches above, loose matches on Subject: below --
2023-08-04  9:16 Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180213143727.GA21178@mwanda \
    --to=dan.carpenter@oracle.com \
    --cc=hare@suse.de \
    --cc=linux-scsi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.