lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070725203737.85871711.akpm@linux-foundation.org>
Date:	Wed, 25 Jul 2007 20:37:37 -0700
From:	Andrew Morton <akpm@...ux-foundation.org>
To:	Valdis.Kletnieks@...edu
Cc:	Kylene Hall <kjhall@...ibm.com>, linux-kernel@...r.kernel.org,
	tpm@...horst.net
Subject: Re: 2.6.23-rc1-mm1 - seems OK on Dell Latitude D820, except for
 tpm_tis

On Wed, 25 Jul 2007 18:03:14 -0400 Valdis.Kletnieks@...edu wrote:

> On Wed, 25 Jul 2007 04:03:04 PDT, Andrew Morton said:
> 
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm1/
> 
> It built and booted on the first try for my Dell Latitude D820 laptop, Core2
> T7200 x86_64 kernel. Now at about 5 hours of uptime. I guess I got lucky and my
> stock .config doesn't trip over any of the issues others are hitting.  I did
> hit *one* problem:
> 
> Under 2.6.22-rc6-mm1, 'modprobe tpm_tis' did this:
> 
> [   10.028000] tpm_tis 00:0f: 1.2 TPM (device-id 0x1001, rev-id 2)
> [   10.088000] tpm_tis 00:0f: Unable to request irq: 8 for probe
> 
> and the modprobe returned immediately.  Under 23-rc1-mm1, the modprobe
> takes a *long* time:
> 
> [   23.787331] tpm_tis 00:0f: 1.2 TPM (device-id 0x1001, rev-id 2)
> [   23.787353] tpm0 (IRQ 3) handled a spurious interrupt
> [  143.803891] tpm_tis 00:0f: tpm_transmit: tpm_send: error -62
> [  143.803920] tpm0 (IRQ 3) handled a spurious interrupt
> [  263.736163] tpm_tis 00:0f: tpm_transmit: tpm_send: error -62
> [  383.668381] tpm_tis 00:0f: tpm_transmit: tpm_send: error -62
> [  385.667261] tpm_tis 00:0f: tpm_transmit: tpm_send: error -62
> 
> then it finally returns.  I snuck in a few 'echo t > /proc/sysrq_trigger',
> and it's always waiting here:
> 
> [  193.154317] modprobe      S 0000001eeae8252d  5488  1446      1
> [  193.154321]  ffff8100043d7a98 0000000000000082 0000000000000000 ffffffff80795480
> [  193.154325]  ffff8100043d7a48 ffff810003538000 ffffffff806813e0 ffff810003538290
> [  193.154329]  0000000004173800 0000000000000202 00000000000000ff ffffffff8023ba74
> [  193.154332] Call Trace:
> [  193.154336]  [<ffffffff8023ba74>] __mod_timer+0xc4/0xd6
> [  193.154340]  [<ffffffff805273cc>] schedule_timeout+0x8d/0xb4
> [  193.154344]  [<ffffffff8023b7be>] process_timeout+0x0/0xb
> [  193.154347]  [<ffffffff805273c7>] schedule_timeout+0x88/0xb4
> [  193.154353]  [<ffffffff880b328a>] :tpm_tis:wait_for_stat+0xb0/0x11a
> [  193.154356]  [<ffffffff802460ef>] autoremove_wake_function+0x0/0x38
> [  193.154360]  [<ffffffff880b31b0>] :tpm_tis:get_burstcount+0x63/0x8d
> [  193.154365]  [<ffffffff880b367e>] :tpm_tis:tpm_tis_send+0x191/0x1d3
> [  193.154370]  [<ffffffff803ba945>] tpm_transmit+0x98/0x1f1
> [  193.154374]  [<ffffffff803baaf2>] transmit_cmd+0x14/0x2e
> [  193.154377]  [<ffffffff803badd8>] tpm_get_timeouts+0xe9/0x13c
> [  193.154382]  [<ffffffff880b3ac5>] :tpm_tis:tpm_tis_init+0x405/0x44c
> [  193.154387]  [<ffffffff880b3b3a>] :tpm_tis:tpm_tis_pnp_init+0x2e/0x30
> [  193.154391]  [<ffffffff8039d8fc>] pnp_device_probe+0x7b/0xa3
> [  193.154394]  [<ffffffff803c691e>] driver_probe_device+0xfa/0x17e
> [  193.154397]  [<ffffffff803c6a4d>] __driver_attach+0x0/0x94
> [  193.154400]  [<ffffffff803c6aa8>] __driver_attach+0x5b/0x94
> [  193.154403]  [<ffffffff803c5cd8>] bus_for_each_dev+0x49/0x7a
> [  193.154408]  [<ffffffff803c6736>] driver_attach+0x1c/0x1e
> [  193.154410]  [<ffffffff803c6046>] bus_add_driver+0x86/0x1a9
> [  193.154414]  [<ffffffff803c6cb3>] driver_register+0x72/0x76
> [  193.154417]  [<ffffffff8039d692>] pnp_register_driver+0x1c/0x1e
> [  193.154421]  [<ffffffff880b8081>] :tpm_tis:init_tis+0x81/0x89
> [  193.154425]  [<ffffffff80251d94>] sys_init_module+0x14db/0x1657
> [  193.154433]  [<ffffffff8020bece>] system_call+0x7e/0x83
> 
> Here's my /proc/interrupts:
> 
>            CPU0       CPU1       
>   0:   15121156          0   IO-APIC-edge      timer
>   1:       3022          0   IO-APIC-edge      i8042
>   3:          0          0   IO-APIC-edge      tpm0
>   8:          0          0   IO-APIC-edge      rtc
>   9:          2          0   IO-APIC-fasteoi   acpi
>  12:         85          0   IO-APIC-edge      i8042
>  14:      46529          0   IO-APIC-edge      libata
>  15:         94          0   IO-APIC-edge      libata
>  16:    1301032          0   IO-APIC-fasteoi   nvidia
>  17:        148          0   IO-APIC-fasteoi   iwl3945
>  19:         10          0   IO-APIC-fasteoi   ohci1394, yenta
>  20:       9548          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
>  21:      10544          0   IO-APIC-fasteoi   uhci_hcd:usb3, HDA Intel
>  22:          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
>  23:          0          0   IO-APIC-fasteoi   uhci_hcd:usb5
> 506:        111      68979   PCI-MSI-edge      eth0
> NMI:          0          0 
> LOC:   15121050   15120952 
> ERR:          0
> 
> (tpm0 on 3 is new with 23-rc1-mm1.  I have *no* idea why 22-rc6-mm1 tried to
> put it on irq 8. Yes, kernel is currently tainted with nvidia module, but
> at the time of the traceback listed above, I had not yet even gotten the module
> built, so the kernel was untainted at that point).
> 

I can't imagine what we did to break tpm_tis, sorry.  Nothing has changed
in there for ages.

Perhaps something broke at the bus level.  It would be useful to add

--- a/drivers/char/tpm/tpm_tis.c~a
+++ a/drivers/char/tpm/tpm_tis.c
@@ -595,9 +595,11 @@ static int __devinit tpm_tis_pnp_init(st
 				      const struct pnp_device_id *pnp_id)
 {
 	resource_size_t start, len;
+
 	start = pnp_mem_start(pnp_dev, 0);
 	len = pnp_mem_len(pnp_dev, 0);
-
+	printk("%s: start=%llu, len=%llu\n",
+		(unsigned long long)start, (unsigned long long)end);
 	return tpm_tis_init(&pnp_dev->dev, start, len);
 }
 
_

to both a good and a bad kernel, see what it says.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ