* Re: [PATCH 05/19] sg: replace rq array with lists
[not found] <20190524184809.25121-6-dgilbert@interlog.com>
@ 2019-05-27 7:11 ` Dan Carpenter
0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2019-05-27 7:11 UTC (permalink / raw)
To: kbuild, Douglas Gilbert
Cc: jejb, martin.petersen, linux-scsi, hare, bart.vanassche,
kbuild-all
Hi Douglas,
Thank you for the patch! Perhaps something to improve:
url: https://github.com/0day-ci/linux/commits/Douglas-Gilbert/sg-v4-interface-rq-sharing-multiple-rqs/20190525-161346
base: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
drivers/scsi/sg.c:3637 sg_proc_seq_show_dbg() warn: returning -1 instead of -ENOMEM is sloppy
Old smatch warnings:
drivers/scsi/sg.c:3520 sg_proc_dbg_sreq() error: uninitialized symbol 'is_dur'.
# https://github.com/0day-ci/linux/commit/c5ad643d999d34c92f76e1459be33e2c1321f699
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout c5ad643d999d34c92f76e1459be33e2c1321f699
vim +3637 drivers/scsi/sg.c
c5ad643d9 Douglas Gilbert 2019-05-24 3610
c5ad643d9 Douglas Gilbert 2019-05-24 3611 /* Called via dbg_seq_ops once for each sg device */
b600cfdd9 Douglas Gilbert 2019-05-24 3612 static int
c5ad643d9 Douglas Gilbert 2019-05-24 3613 sg_proc_seq_show_dbg(struct seq_file *s, void *v)
^1da177e4 Linus Torvalds 2005-04-16 3614 {
c5ad643d9 Douglas Gilbert 2019-05-24 3615 bool found = false;
c5ad643d9 Douglas Gilbert 2019-05-24 3616 bool trunc = false;
c5ad643d9 Douglas Gilbert 2019-05-24 3617 const int bp_len = SG_PROC_DEBUG_SZ;
c5ad643d9 Douglas Gilbert 2019-05-24 3618 int n = 0;
c5ad643d9 Douglas Gilbert 2019-05-24 3619 int k = 0;
c5ad643d9 Douglas Gilbert 2019-05-24 3620 unsigned long iflags;
^1da177e4 Linus Torvalds 2005-04-16 3621 struct sg_proc_deviter *it = (struct sg_proc_deviter *)v;
b600cfdd9 Douglas Gilbert 2019-05-24 3622 struct sg_device *sdp;
c5ad643d9 Douglas Gilbert 2019-05-24 3623 int *fdi_p;
c5ad643d9 Douglas Gilbert 2019-05-24 3624 char *bp;
c5ad643d9 Douglas Gilbert 2019-05-24 3625 char *disk_name;
c5ad643d9 Douglas Gilbert 2019-05-24 3626 char b1[128];
^1da177e4 Linus Torvalds 2005-04-16 3627
c5ad643d9 Douglas Gilbert 2019-05-24 3628 b1[0] = '\0';
cc833acbe Douglas Gilbert 2014-06-25 3629 if (it && (0 == it->index))
cc833acbe Douglas Gilbert 2014-06-25 3630 seq_printf(s, "max_active_device=%d def_reserved_size=%d\n",
c5ad643d9 Douglas Gilbert 2019-05-24 3631 (int)it->max, def_reserved_size);
c5ad643d9 Douglas Gilbert 2019-05-24 3632 fdi_p = it ? &it->fd_index : &k;
c5ad643d9 Douglas Gilbert 2019-05-24 3633 bp = kzalloc(bp_len, __GFP_NOWARN | GFP_KERNEL);
c5ad643d9 Douglas Gilbert 2019-05-24 3634 if (!bp) {
c5ad643d9 Douglas Gilbert 2019-05-24 3635 seq_printf(s, "%s: Unable to allocate %d on heap, finish\n",
c5ad643d9 Douglas Gilbert 2019-05-24 3636 __func__, bp_len);
c5ad643d9 Douglas Gilbert 2019-05-24 @3637 return -1;
^^^^^^^^^
-1 is -EPERM.
c5ad643d9 Douglas Gilbert 2019-05-24 3638 }
c6517b794 Tony Battersby 2009-01-21 3639 read_lock_irqsave(&sg_index_lock, iflags);
c6517b794 Tony Battersby 2009-01-21 3640 sdp = it ? sg_lookup_dev(it->index) : NULL;
cc833acbe Douglas Gilbert 2014-06-25 3641 if (NULL == sdp)
cc833acbe Douglas Gilbert 2014-06-25 3642 goto skip;
c5ad643d9 Douglas Gilbert 2019-05-24 3643 read_lock(&sdp->sfd_llock);
cc833acbe Douglas Gilbert 2014-06-25 3644 if (!list_empty(&sdp->sfds)) {
c5ad643d9 Douglas Gilbert 2019-05-24 3645 found = true;
c5ad643d9 Douglas Gilbert 2019-05-24 3646 disk_name = (sdp->disk ? sdp->disk->disk_name : "?_?");
cc833acbe Douglas Gilbert 2014-06-25 3647 if (atomic_read(&sdp->detaching))
c5ad643d9 Douglas Gilbert 2019-05-24 3648 snprintf(b1, sizeof(b1), " >>> device=%s %s\n",
c5ad643d9 Douglas Gilbert 2019-05-24 3649 disk_name, "detaching pending close\n");
cc833acbe Douglas Gilbert 2014-06-25 3650 else if (sdp->device) {
c5ad643d9 Douglas Gilbert 2019-05-24 3651 n = sg_proc_dbg_sdev(sdp, bp, bp_len, fdi_p);
c5ad643d9 Douglas Gilbert 2019-05-24 3652 if (n >= bp_len - 1) {
c5ad643d9 Douglas Gilbert 2019-05-24 3653 trunc = true;
c5ad643d9 Douglas Gilbert 2019-05-24 3654 if (bp[bp_len - 2] != '\n')
c5ad643d9 Douglas Gilbert 2019-05-24 3655 bp[bp_len - 2] = '\n';
c5ad643d9 Douglas Gilbert 2019-05-24 3656 }
c5ad643d9 Douglas Gilbert 2019-05-24 3657 } else {
c5ad643d9 Douglas Gilbert 2019-05-24 3658 snprintf(b1, sizeof(b1), " >>> device=%s %s\n",
c5ad643d9 Douglas Gilbert 2019-05-24 3659 disk_name, "sdp->device==NULL, skip");
cc833acbe Douglas Gilbert 2014-06-25 3660 }
^1da177e4 Linus Torvalds 2005-04-16 3661 }
c5ad643d9 Douglas Gilbert 2019-05-24 3662 read_unlock(&sdp->sfd_llock);
cc833acbe Douglas Gilbert 2014-06-25 3663 skip:
c6517b794 Tony Battersby 2009-01-21 3664 read_unlock_irqrestore(&sg_index_lock, iflags);
c5ad643d9 Douglas Gilbert 2019-05-24 3665 if (found) {
c5ad643d9 Douglas Gilbert 2019-05-24 3666 if (n > 0) {
c5ad643d9 Douglas Gilbert 2019-05-24 3667 seq_puts(s, bp);
c5ad643d9 Douglas Gilbert 2019-05-24 3668 if (seq_has_overflowed(s))
c5ad643d9 Douglas Gilbert 2019-05-24 3669 goto s_ovfl;
c5ad643d9 Douglas Gilbert 2019-05-24 3670 if (trunc)
c5ad643d9 Douglas Gilbert 2019-05-24 3671 seq_printf(s, " >> Output truncated %s\n",
c5ad643d9 Douglas Gilbert 2019-05-24 3672 "due to buffer size");
c5ad643d9 Douglas Gilbert 2019-05-24 3673 } else if (b1[0]) {
c5ad643d9 Douglas Gilbert 2019-05-24 3674 seq_puts(s, b1);
c5ad643d9 Douglas Gilbert 2019-05-24 3675 if (seq_has_overflowed(s))
c5ad643d9 Douglas Gilbert 2019-05-24 3676 goto s_ovfl;
c5ad643d9 Douglas Gilbert 2019-05-24 3677 }
c5ad643d9 Douglas Gilbert 2019-05-24 3678 }
c5ad643d9 Douglas Gilbert 2019-05-24 3679 s_ovfl:
c5ad643d9 Douglas Gilbert 2019-05-24 3680 kfree(bp);
^1da177e4 Linus Torvalds 2005-04-16 3681 return 0;
^1da177e4 Linus Torvalds 2005-04-16 3682 }
^1da177e4 Linus Torvalds 2005-04-16 3683
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-05-27 7:11 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20190524184809.25121-6-dgilbert@interlog.com>
2019-05-27 7:11 ` [PATCH 05/19] sg: replace rq array with lists Dan Carpenter
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.