Re: [PATCH 1/1] tpm: fix cause of SMP stack traces

Chris Wright
2005-01-18T22:37:23Z

* Kylene Hall (kjhall@us.ibm.com) wrote:
> There were misplaced spinlock acquires and releases in the probe, open,
> close and release paths which were causing might_sleep and schedule while
> atomic error messages accompanied by stack traces when the kernel was
> compiled with SMP support. Bug reported by Reben Jenster
> <ruben@hotheads.de>
>
> Signed-off-by: Kylene Hall <kjhall@us.ibm.com>
> ---
> diff -uprN linux-2.6.10/drivers/char/tpm/tpm.c linux-2.6.10-tpm/drivers/char/tpm/tpm.c
> --- linux-2.6.10/drivers/char/tpm/tpm.c 2005-01-18 16:42:17.000000000 -0600
> +++ linux-2.6.10-tpm/drivers/char/tpm/tpm.c 2005-01-18 12:52:53.000000000 -0600
> @@ -373,8 +372,9 @@ int tpm_open(struct inode *inode, struct
> {
> int rc = 0, minor = iminor(inode);
> struct tpm_chip *chip = NULL, *pos;
> + unsigned long flags;
>
> - spin_lock(&driver_lock);
> + spin_lock_irqsave(&driver_lock, flags);

Hmm, unless I'm missing something, this is only worse (for might sleep
warnings). Now you've disabled irq's too.

thanks,
-chris
--
Linux Security Modules http://lsm.immunix.org http://lsm.bkbits.net