From: "Sean Nyekjær" <sean.nyekjaer@prevas.dk>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-serial@vger.kernel.org, Josh Cartwright <joshc@ni.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-rt-users@vger.kernel.org,
Jon Ringle <jringle@gridpoint.com>
Subject: Re: [PATCH] tty: serial: sc16is7xx: implemented our own oneshot-like handling
Date: Mon, 14 Mar 2016 07:21:14 +0100 [thread overview]
Message-ID: <56E6585A.3060203@prevas.dk> (raw)
In-Reply-To: <alpine.DEB.2.11.1603131103020.3657@nanos>
On 2016-03-13 11:25, Thomas Gleixner wrote:
> On Fri, 11 Mar 2016, Sean Nyekjaer wrote:
>
>> static irqreturn_t sc16is7xx_irq(int irq, void *dev_id)
>> {
>> struct sc16is7xx_port *s = (struct sc16is7xx_port *)dev_id;
>> + int i;
>> +
>> + for (i = 0; i < s->devtype->nr_uart; ++i)
>> + disable_irq_nosync(s->p[i].port.irq);
> Aside of the lack of a changelog. This is completely bogus. You disable the
> same interrupt a gazillion of times.
I can't see why the interrupt is disabled a gazillion times.
When the irq is disabled the function will not be called before it's
enabled again... Or have i missed something?
>> queue_kthread_work(&s->kworker, &s->irq_work);
> This driver should use a threaded interrupt instead of trying to emulate it
> via dis/enable_irq and a worker thread.
I agree, I and "Sebastian Andrzej Siewior" have proposed this fix, but
it was turned down. :-)
>
> Then you simply call c16is7xx_port_irq() right from the interrupt routine and
> the core code deals with the interrupt mask/unmask automatically.
>
> Thanks,
>
> tglx
>
/Sean
WARNING: multiple messages have this Message-ID (diff)
From: "Sean Nyekjær" <sean.nyekjaer@prevas.dk>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: <linux-serial@vger.kernel.org>, Josh Cartwright <joshc@ni.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
<linux-rt-users@vger.kernel.org>,
Jon Ringle <jringle@gridpoint.com>
Subject: Re: [PATCH] tty: serial: sc16is7xx: implemented our own oneshot-like handling
Date: Mon, 14 Mar 2016 07:21:14 +0100 [thread overview]
Message-ID: <56E6585A.3060203@prevas.dk> (raw)
In-Reply-To: <alpine.DEB.2.11.1603131103020.3657@nanos>
On 2016-03-13 11:25, Thomas Gleixner wrote:
> On Fri, 11 Mar 2016, Sean Nyekjaer wrote:
>
>> static irqreturn_t sc16is7xx_irq(int irq, void *dev_id)
>> {
>> struct sc16is7xx_port *s = (struct sc16is7xx_port *)dev_id;
>> + int i;
>> +
>> + for (i = 0; i < s->devtype->nr_uart; ++i)
>> + disable_irq_nosync(s->p[i].port.irq);
> Aside of the lack of a changelog. This is completely bogus. You disable the
> same interrupt a gazillion of times.
I can't see why the interrupt is disabled a gazillion times.
When the irq is disabled the function will not be called before it's
enabled again... Or have i missed something?
>> queue_kthread_work(&s->kworker, &s->irq_work);
> This driver should use a threaded interrupt instead of trying to emulate it
> via dis/enable_irq and a worker thread.
I agree, I and "Sebastian Andrzej Siewior" have proposed this fix, but
it was turned down. :-)
>
> Then you simply call c16is7xx_port_irq() right from the interrupt routine and
> the core code deals with the interrupt mask/unmask automatically.
>
> Thanks,
>
> tglx
>
/Sean
next prev parent reply other threads:[~2016-03-14 6:21 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-11 10:34 [PATCH] tty: serial: sc16is7xx: implemented our own oneshot-like handling Sean Nyekjaer
2016-03-11 10:34 ` Sean Nyekjaer
2016-03-11 10:36 ` Sean Nyekjær
2016-03-11 10:36 ` Sean Nyekjær
2016-03-11 11:21 ` Sebastian Andrzej Siewior
2016-03-11 11:29 ` Sean Nyekjær
2016-03-11 11:29 ` Sean Nyekjær
2016-03-11 11:33 ` Sean Nyekjær
2016-03-11 11:33 ` Sean Nyekjær
2016-03-11 16:43 ` Greg Kroah-Hartman
2016-03-13 10:25 ` Thomas Gleixner
2016-03-14 6:21 ` Sean Nyekjær [this message]
2016-03-14 6:21 ` Sean Nyekjær
2016-03-14 8:48 ` Thomas Gleixner
2016-03-14 23:13 ` Jakub Kiciński
2016-03-14 23:13 ` Jakub Kiciński
-- strict thread matches above, loose matches on Subject: below --
2016-03-13 19:05 Maarten Brock
2016-03-14 6:17 ` Sean Nyekjær
2016-03-14 6:17 ` Sean Nyekjær
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=56E6585A.3060203@prevas.dk \
--to=sean.nyekjaer@prevas.dk \
--cc=gregkh@linuxfoundation.org \
--cc=joshc@ni.com \
--cc=jringle@gridpoint.com \
--cc=linux-rt-users@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=tglx@linutronix.de \
/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.