From: Tsozik <tsozik@yahoo.com>
To: Pete Zaitcev <zaitcev@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/1] mct_u232: IOCTL implementation
Date: Sun, 26 Dec 2010 11:41:59 -0800 (PST) [thread overview]
Message-ID: <915580.52826.qm@web65716.mail.ac4.yahoo.com> (raw)
In-Reply-To: <20101226104905.6801612f@lembas.zaitcev.lan>
Pete,
Many thanks for your comment/concern. I borrowed an TIOCGICOUNT implementation from usb/serial/io_ti.c:
case TIOCGICOUNT:
dbg("%s - (%d) TIOCGICOUNT RX=%d, TX=%d", __func__,
port->number, edge_port->icount.rx, edge_port->icount.tx);
if (copy_to_user((void __user *)arg, &edge_port->icount,
sizeof(edge_port->icount)))
return -EFAULT;
return 0;
}
There are 2 similar TIOCGICOUNT implementations listed in
ark3116.c
io_edgeport.c
io_ti.c
mos7720.c
mos7840.c
ti_usb_3410_5052.c
files under usb/serial/ directory. One based on io_ti.c and another based on io_edgeport.c. I borrowed one from io_ti.c, since it looked more effecient to me. I searched for any mention of get_icount function under linux-2.6.35 and didn't find any file which declared or called this function:
[vtsozik@SR71 linux-2.6.35]$ find . -type f -name '*.[c,h]' | xargs grep get_icount
[vtsozik@SR71 linux-2.6.35]$
I'm wondering if you could give me a bit more information on this. Otherwise I would really prefer to proceed with something that already exists and tested. If by some reason you believe that alternative implementation from io_edgeport.c (please see code snippet below) should be used please let me know. Again I didn't see any reason for extra copy.
case TIOCGICOUNT:
cnow = edge_port->icount;
memset(&icount, 0, sizeof(icount));
icount.cts = cnow.cts;
icount.dsr = cnow.dsr;
icount.rng = cnow.rng;
icount.dcd = cnow.dcd;
icount.rx = cnow.rx;
icount.tx = cnow.tx;
icount.frame = cnow.frame;
icount.overrun = cnow.overrun;
icount.parity = cnow.parity;
icount.brk = cnow.brk;
icount.buf_overrun = cnow.buf_overrun;
dbg("%s (%d) TIOCGICOUNT RX=%d, TX=%d",
__func__, port->number, icount.rx, icount.tx);
if (copy_to_user((void __user *)arg, &icount, sizeof(icount)))
return -EFAULT;
return 0;
}
Thank you in advance,
Vadim.
--- On Sun, 12/26/10, Pete Zaitcev <zaitcev@redhat.com> wrote:
> From: Pete Zaitcev <zaitcev@redhat.com>
> Subject: Re: [PATCH 1/1] mct_u232: IOCTL implementation
> To: "Tsozik" <tsozik@yahoo.com>
> Cc: "Greg Kroah-Hartman" <gregkh@suse.de>, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
> Date: Sunday, December 26, 2010, 12:49 PM
> On Sat, 25 Dec 2010 21:39:39 -0800
> (PST)
> Tsozik <tsozik@yahoo.com>
> wrote:
>
> > +++ mct_u232.c 2010-12-25 21:44:57.714640343
> -0500
> > +static int mct_u232_ioctl(struct tty_struct
> *tty, struct file *file,
> > +
> unsigned int cmd,
> unsigned long arg)
> > +{
> > + case TIOCGICOUNT:
> > +
> dbg("%s - (%d) TIOCGICOUNT RX=%d, TX=%d", __func__,
> > +
> port->number,
> mct_u232_port->icount.rx, mct_u232_port->icount.tx);
> > +
> if (copy_to_user((void __user *)arg,
> &mct_u232_port->icount,
> > +
> sizeof(mct_u232_port->icount)))
> > +
> return -EFAULT;
>
> This looks suspicious. Didn't we relocate the machinery for
> TIOCGICOUNT
> into a generic place? Please examine how ->get_icount
> works before
> hand-rolling the ioctl.
>
> -- Pete
>
next prev parent reply other threads:[~2010-12-26 19:42 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-26 5:39 [PATCH 1/1] mct_u232: IOCTL implementation Tsozik
2010-12-26 17:49 ` Pete Zaitcev
2010-12-26 19:41 ` Tsozik [this message]
2010-12-26 18:41 ` Greg KH
2010-12-26 19:51 ` Tsozik
2010-12-26 21:30 ` Randy Dunlap
2010-12-26 22:01 ` Tsozik
2010-12-26 22:03 ` Jesper Juhl
2010-12-26 23:31 ` Tsozik
-- strict thread matches above, loose matches on Subject: below --
2010-12-26 22:14 Tsozik
2010-12-27 0:28 ` Pete Zaitcev
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=915580.52826.qm@web65716.mail.ac4.yahoo.com \
--to=tsozik@yahoo.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=zaitcev@redhat.com \
/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.