From: Andrew Morton <akpm@linux-foundation.org>
To: Valdis.Kletnieks@vt.edu
Cc: "Kylene Hall" <kjhall@us.ibm.com>,
tpm@selhorst.net, linux-kernel@vger.kernel.org,
"Fernando Luis Vázquez Cao" <fernando@oss.ntt.co.jp>
Subject: Re: 2.6.23-rc1-mm1 - seems OK on Dell Latitude D820, except for tpm_tis
Date: Fri, 27 Jul 2007 11:07:01 -0700 [thread overview]
Message-ID: <20070727110701.be3a8459.akpm@linux-foundation.org> (raw)
In-Reply-To: <23912.1185542889@turing-police.cc.vt.edu>
On Fri, 27 Jul 2007 09:28:09 -0400
Valdis.Kletnieks@vt.edu wrote:
> On Fri, 27 Jul 2007 00:00:32 EDT, Valdis.Kletnieks@vt.edu said:
>
> > Apparently, things go pear-shaped in tis_tpm_send(), when they get to the
> > 'if (chip->vendor.irq)' - under 22-rc6-mm1, we never got into this code,
> > because earlier initialization complained it couldn't get IRQ8. Now, we
> > get IRQ3, and apparently get into this if statement, and then spend 120
> > seconds while wait_for_stat() times out. So the root cause does look like
> > it's this IRQ8/IRQ3 issue.
> >
> > I'll try to find time to do a bisect on -rc1-mm1 tomorrow to track down
> > what exactly did this.
>
> And we have a winner. In my bisect 'hunt' file, I ended at:
>
> fs-use-kmem_cache_zalloc-instead.patch GOOD
> # remove-kconfig-setting-config_debug_shirq.patch: Ingo worried
> remove-kconfig-setting-config_debug_shirq.patch BAD
Thanks for working that out.
> Looks like Ingo was right. :) As a cross-check, I tested a 'GOOD' kernel,
> but rebuilt with CONFIG_DEBUG_SHIRQ=y, and that *also* died.
>
> Looks like the problematic code is in tpm_tis.c tpm_tis_init() near here:
>
> for (i = 3; i < 16 && chip->vendor.irq == 0; i++) {
> iowrite8(i, chip->vendor.iobase +
> TPM_INT_VECTOR(chip->vendor.locality));
> if (request_irq
> (i, tis_int_probe, IRQF_SHARED,
> chip->vendor.miscdev.name, chip) != 0) {
> dev_info(chip->dev,
> "Unable to request irq: %d for probe\n"
> ,
> i);
> continue;
> }
>
> This seems to be misbehaving differently for the two different DEBUG_SHIRQ
> cases.
>
> With DEBUG_SHIRQ=n, it starts at IRQ3, gets to at least 8 (where it complains
> it can't request it for probing), and possibly all the way to 15, without ever
> actually selecting and assigning an IRQ (to refresh memories, in that range
> /proc/interrupts only lists:
>
> 8: 0 0 IO-APIC-edge rtc
> 9: 3 0 IO-APIC-fasteoi acpi
> 12: 94 0 IO-APIC-edge i8042
> 14: 148166 0 IO-APIC-edge libata
> 15: 94 0 IO-APIC-edge libata
>
> So there's certainly IRQ's available. No idea why it doesn't choose one. But
> since it never chose one, it never gets into the "wait for the IRQ" protected
> by 'if (chip->vendor.irq)' at the end of tpm_tis_send.
>
> With DEBUG_SHIRQ=y, It starts at IRQ3, and assigns it (which seems a good thing).
> Unfortunately, this then hits the timeouts in tpm_tis_send.
>
> Anybody got an idea what *should* be happening here?
>
> Just for the record, I see this in /sys:
>
> % cat /sys/bus/pnp/devices/00:0e/id
> BCM0102
> PNP0c31
>
> The driver is apparently being selected on the basis of PNP0c31. One of
> the other ID's it looks for is BCM0101 - but this is a BCM0102. Is this a
> misidentification, or does the driver need to handle a 0102 differently, or
> is something else odd going on?
>
Fernando, those patches are just too scary for me because of stuff like
this.
Perhaps we should look at implementing this new behaviour on a per-driver
basis? Pass smoe new flag into request_irq(), perhaps?
next prev parent reply other threads:[~2007-07-27 18:07 UTC|newest]
Thread overview: 138+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-25 11:03 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 12:25 ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 17:23 ` 2.6.23-rc1-mm1 Len Brown
2007-07-25 18:58 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 19:13 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 20:22 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 20:36 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 20:36 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 21:52 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 21:52 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-26 7:25 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26 7:25 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26 17:54 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-26 17:54 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-28 14:03 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-28 14:03 ` 2.6.23-rc1-mm1 Torsten Kaiser
2007-07-25 23:26 ` 2.6.23-rc1-mm1 Len Brown
2007-07-26 9:41 ` 2.6.23-rc1-mm1 Mel Gorman
2007-07-26 13:53 ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 12:40 ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 20:05 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 12:55 ` 2.6.23-rc1-mm1 Cedric Le Goater
2007-07-25 13:48 ` 2.6.23-rc1-mm1: chipsfb_pci_suspend problem Rafael J. Wysocki
2007-07-25 20:22 ` Andrew Morton
2007-07-25 22:45 ` Pavel Machek
2007-07-25 13:36 ` [-mm patch] one e1000 driver should be enough for everyone Adrian Bunk
2007-07-25 13:48 ` Jeff Garzik
2007-07-25 14:46 ` Adrian Bunk
2007-07-25 15:05 ` Jeff Garzik
2007-07-25 15:21 ` Kok, Auke
2007-07-25 15:23 ` Jeff Garzik
2007-07-25 20:50 ` Andrew Morton
2007-07-25 16:32 ` 2.6.23-rc1-mm1 Michal Piotrowski
2007-07-25 21:56 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-25 16:36 ` 2.6.23-rc1-mm1 -- mostly fails to build Andy Whitcroft
2007-07-25 17:04 ` Sam Ravnborg
2007-07-25 18:06 ` 2.6.23-rc1-mm1: SCSI_SRP_ATTRS compile error Adrian Bunk
2007-07-26 10:49 ` FUJITA Tomonori
2007-07-25 22:41 ` 2.6.23-rc1-mm1 -- mostly fails to build Andy Whitcroft
2007-07-26 5:56 ` Andrew Morton
2007-07-26 17:53 ` Yinghai Lu
2007-07-25 18:15 ` 2.6.23-rc1-mm1: net/ipv4/fib_trie.c compile error Adrian Bunk
2007-07-25 18:22 ` 2.6.23-rc1-mm1: reiser4 <-> lzo " Adrian Bunk
2007-07-25 18:44 ` Edward Shishkin
2007-07-27 12:35 ` Edward Shishkin
2007-07-27 15:11 ` Richard Purdie
2007-07-25 18:48 ` 2.6.23-rc1-mm1 Michal Piotrowski
2007-07-25 18:53 ` 2.6.23-rc1-mm1 Sam Ravnborg
2007-07-25 19:18 ` 2.6.23-rc1-mm1 H. Peter Anvin
2007-07-25 19:21 ` 2.6.23-rc1-mm1 Sam Ravnborg
2007-07-25 20:58 ` 2.6.23-rc1-mm1 Gabriel C
2007-07-25 21:05 ` 2.6.23-rc1-mm1 Gabriel C
2007-07-25 21:11 ` 2.6.23-rc1-mm1 H. Peter Anvin
2007-07-25 21:13 ` 2.6.23-rc1-mm1 Gabriel C
2007-07-25 21:18 ` 2.6.23-rc1-mm1 H. Peter Anvin
2007-07-25 21:26 ` 2.6.23-rc1-mm1 Gabriel C
2007-07-26 0:07 ` 2.6.23-rc1-mm1 Greg KH
2007-07-26 0:28 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26 1:55 ` 2.6.23-rc1-mm1 Dave Young
2007-07-26 2:23 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-26 20:18 ` 2.6.23-rc1-mm1 Dave Hansen
2007-07-25 20:42 ` 2.6.23-rc1-mm1 - drivers/char/nozomi.c overflow in implicit constant conversion , warnings Gabriel C
2007-07-26 5:42 ` Greg KH
2007-07-25 21:01 ` 2.6.23-rc1-mm1: m32r is_init() compile error Adrian Bunk
2007-07-25 21:42 ` sukadev
2007-07-25 21:17 ` 2.6.23-rc1-mm1: git-kgdb breaks sh compilation Adrian Bunk
2007-07-26 1:45 ` Paul Mundt
2007-07-25 22:03 ` 2.6.23-rc1-mm1 - seems OK on Dell Latitude D820, except for tpm_tis Valdis.Kletnieks
2007-07-26 3:37 ` Andrew Morton
2007-07-27 4:00 ` Valdis.Kletnieks
2007-07-27 13:28 ` Valdis.Kletnieks
2007-07-27 18:07 ` Andrew Morton [this message]
2007-07-27 19:44 ` Valdis.Kletnieks
2007-07-27 22:43 ` Bjorn Helgaas
2007-07-30 18:09 ` Bjorn Helgaas
2007-07-30 23:53 ` Valdis.Kletnieks
2007-07-31 18:48 ` Valdis.Kletnieks
2007-07-31 20:01 ` Bjorn Helgaas
2007-07-31 21:31 ` Valdis.Kletnieks
2007-07-31 23:05 ` Bjorn Helgaas
2007-07-26 5:26 ` [-mm patch] DMA engine kconfig improvements Adrian Bunk
2007-08-04 2:15 ` Dan Williams
2007-08-10 0:43 ` Adrian Bunk
2007-08-15 23:36 ` Nelson, Shannon
2007-07-26 12:11 ` [PATCH] sparsemem: ensure we initialise the node mapping for SPARSEMEM_STATIC Andy Whitcroft
2007-07-26 12:58 ` 2.6.23-rc1-mm1 sparsemem_vmemamp fix KAMEZAWA Hiroyuki
2007-07-26 14:39 ` Andy Whitcroft
2007-07-26 14:44 ` Andy Whitcroft
2007-07-27 13:28 ` [-mm patch] xtensa console.c: remove duplicate #include Frederik Deweerdt
2007-07-28 15:44 ` NETPOLL=y , NETDEVICES=n compile error ( Re: 2.6.23-rc1-mm1 ) Gabriel C
2007-07-28 17:26 ` Andrew Morton
2007-07-28 18:42 ` Gabriel C
2007-07-31 8:32 ` Jarek Poplawski
2007-07-31 10:14 ` Gabriel C
2007-07-31 11:44 ` Jason Wessel
2007-07-31 12:47 ` Jarek Poplawski
2007-07-31 12:17 ` Jarek Poplawski
2007-07-31 15:05 ` Gabriel C
2007-08-01 9:59 ` Jarek Poplawski
2007-08-02 2:02 ` Matt Mackall
2007-08-02 9:00 ` Jarek Poplawski
2007-08-02 15:59 ` Matt Mackall
2007-08-03 7:30 ` Jarek Poplawski
2007-08-02 9:36 ` Sam Ravnborg
2007-08-02 10:32 ` Satyam Sharma
2007-08-02 11:40 ` Satyam Sharma
2007-08-02 11:40 ` Jarek Poplawski
2007-08-02 11:56 ` Satyam Sharma
2007-08-02 12:52 ` Jarek Poplawski
2007-08-06 11:51 ` [PATCH] docs: note about select in kconfig-language.txt Jarek Poplawski
2007-07-28 16:36 ` DCA=n , INTEL_IOATDMA=y compile error ( Re: 2.6.23-rc1-mm1 ) Gabriel C
2007-07-28 16:47 ` sound/pci/ac97/ac97_patch.h - declared 'static' but never defined warnings " Gabriel C
2007-07-28 17:07 ` mm/sparse.c compile error " Gabriel C
2007-07-28 17:30 ` Andrew Morton
2007-07-30 12:16 ` Andy Whitcroft
2007-07-28 19:32 ` [PATCH -mm] Fix libata warnings with CONFIG_PM=n Gabriel C
2007-07-29 14:57 ` [-mm patch] make hugetlbfs_read() static Adrian Bunk
2007-07-29 14:57 ` [-mm patch] fs/ecryptfs/: make code static Adrian Bunk
2007-07-29 14:58 ` [-mm patch] make struct sdio_dev_attrs[] static Adrian Bunk
2007-07-29 19:29 ` Pierre Ossman
2007-07-29 14:58 ` [-mm patch] MTD onenand_sim.c: make struct info static Adrian Bunk
2007-07-29 14:58 ` Adrian Bunk
2007-07-29 14:58 ` [-mm patch] make scsi_host_link_pm_policy() static Adrian Bunk
2007-07-29 14:58 ` [-mm patch] USB: make dev_attr_authorized_default static Adrian Bunk
2007-07-31 19:13 ` Inaky Perez-Gonzalez
2007-07-29 14:59 ` [-mm patch] kernel/printk.c: make 2 variables static Adrian Bunk
2007-07-29 16:51 ` Randy Dunlap
2007-07-29 14:59 ` [-mm patch] export v4l2_int_device_{,un}register Adrian Bunk
2007-07-29 14:59 ` [-mm patch] kernel/pid.c: remove unused exports Adrian Bunk
2007-07-29 15:00 ` [-mm patch] security/ cleanups Adrian Bunk
2007-07-30 11:47 ` James Morris
2007-07-29 15:49 ` 2.6.23-rc1-mm1 Grant Wilson
2007-07-30 9:58 ` 2.6.23-rc1-mm1 Dave Young
2007-07-30 18:27 ` 2.6.23-rc1-mm1 Andrew Morton
2007-07-30 18:42 ` 2.6.23-rc1-mm1 Christoph Hellwig
2007-07-30 22:18 ` 2.6.23-rc1-mm1 Satyam Sharma
2007-07-31 1:21 ` 2.6.23-rc1-mm1 Dave Young
2007-08-01 15:24 ` 2.6.23-rc1-mm1 - loopback mount of files fails loop-use-unlocked_ioctl.patch Valdis.Kletnieks
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=20070727110701.be3a8459.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=Valdis.Kletnieks@vt.edu \
--cc=fernando@oss.ntt.co.jp \
--cc=kjhall@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tpm@selhorst.net \
/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.