Re: [PATCH 7/7] tpm: Driver for next generation TPM chips

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10.04.2006 [09:37:28 -0500], Kylene Jo Hall wrote:
> This patch contains the driver for the next generation of TPM chips
> version 1.2 including support for interrupts.  The Trusted Computing
> Group has written the TPM Interface Specification (TIS) which defines a
> common interface for all manufacturer's 1.2 TPM's thus the name
> tpm_tis.
> 
> This updated version of the patch uses the new sysfs files that came
> about from the comments and changes in patch 6/7.  It replaces the 7/7
> patch from the original set.

<snip>

> +static int request_locality(struct tpm_chip *chip, int l)
> +{
> +	unsigned long stop;
> +
> +	if (check_locality(chip, l) >= 0)
> +		return l;
> +
> +	iowrite8(TPM_ACCESS_REQUEST_USE,
> +		 chip->vendor.iobase + TPM_ACCESS(l));
> +
> +	if (chip->vendor.irq) {
> +		interruptible_sleep_on_timeout(&chip->vendor.int_queue,
> +					       HZ *
> +					       chip->vendor.timeout_a /
> +					       1000);
> +		if (check_locality(chip, l) >= 0)
> +			return l;
> +
> +	} else {
> +		/* wait for burstcount */
> +		stop = jiffies + (HZ * chip->vendor.timeout_a / 1000);
> +		do {
> +			if (check_locality(chip, l) >= 0)
> +				return l;
> +			msleep(TPM_TIMEOUT);
> +		}
> +		while (time_before(jiffies, stop));
> +	}

This looks like it could take the msecs_to_jiffies() conversion as well.
Might as well cache it before the if/else, as both clauses use it?
Really, it is just wait_event*() without the wait-queue. Well, this is
at least one more consumer potentially of the poll_event*() API I had
written a while back, I'll dust it off again if I have the time.

<snip>

> +static int get_burstcount(struct tpm_chip *chip)
> +{
> +	unsigned long stop;
> +	int burstcnt;
> +
> +	/* wait for burstcount */
> +	/* which timeout value, spec has 2 answers (c & d) */
> +	stop = jiffies + (HZ * chip->vendor.timeout_d / 1000);

msecs_to_jiffies().

<snip>

With the changes you've already made, that should clean up the sleeping
code a bit, at least.

-- 
Nishanth Aravamudan <[email protected]>
IBM Linux Technology Center
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux