All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ivica Mikec <mikeci@acm.org>
To: "Jiri Slaby" <jslaby@suse.cz>, <mikeci@acm.org>
Cc: <linux-kernel@vger.kernel.org>
Subject: Re: Possible bug in 8250.c
Date: Fri, 19 Aug 2011 17:58:24 -0700	[thread overview]
Message-ID: <29681.1313801904@sonic.net> (raw)

I traced the function using jtag debugger. 

UART is not sharing interrupts:
========================================= Console ========================
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0xae023400 (irq = 53) is a 16550A
console [ttyS0] enabled, bootconsole disabled
=========================================================================
And /proc/interrupts:

=========================================================================
cat /proc/interrupts
              CPU0
 53:       4534                XXXXX  serial
 56:         12                   XXXXX  phy_interrupt
153:   20262068          XXXXX  timer
ERR:          0
=========================================================================

So in first iteration, interrupt is cleared, and in second, function will execute:

          } else if (end == NULL)
                        end = l;

which will terminate the loop, but the return code will be IRQ_RETVAL(0).




On Fri 19/08/11 12:01 , Jiri Slaby <jslaby@suse.cz> wrote:

> On 08/19/2011 07:44 PM, Ivica Mikec wrote:
> > 
> > Hi!
> > 
> > 
> > I noticed a problem in 8250.c. 
> > 
> > My board has only one UART port, and is 16550 compatible, so in function
> serial8250_interrupt I see that serial_in function is called twice. Second
> time, code "else if (end == NULL)" is executed and function return
> IRQ_NONE. This causes an entry in /proc/irq/spurious:
> > 
> > count 239
> > unhandled 1
> > last_unhandled 4294700846 ms
> > 
> > But this is not a spurious interrupt.
> 
> How did you find out? Have you checked that the port signals that it
> raised an interrupt? I.e. does it go through the 'if (!(iir &
> UART_IIR_NO_INT))' branch?
> 
> What other devices are bound to the same interrupt? Attach
> /proc/interrupts.
> 
> regards,
> -- 
> js
> suse labs
> 
> 
> 

             reply	other threads:[~2011-08-20  0:58 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-20  0:58 Ivica Mikec [this message]
2011-08-20 16:21 ` Possible bug in 8250.c Alan Cox
  -- strict thread matches above, loose matches on Subject: below --
2011-08-19 17:44 Ivica Mikec
2011-08-19 19:01 ` Jiri Slaby
2011-08-11 23:23 Ivica Mikec
2011-08-11 23:23 ` Ivica Mikec

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=29681.1313801904@sonic.net \
    --to=mikeci@acm.org \
    --cc=jslaby@suse.cz \
    --cc=linux-kernel@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.