< READ_PCR_RESULT_SIZE) return len; 
< READ_PCR_RESULT_SIZE){ dev_err(&chip->pci_dev->dev, "A TPM error (%d) occurred" " attempting to read PCR %d of %d\n", be32_to_cpu(*((__be32 *) (data + 6))), i, num_pcrs); goto out; } 
ssize_t tpm_show_pcrs(struct device *dev, struct device_attribute *attr,		      char *buf){	u8 data[READ_PCR_RESULT_SIZE];	ssize_t len;	int i, j, num_pcrs;	__be32 index;	char *str = buf;	struct tpm_chip *chip =	    pci_get_drvdata(to_pci_dev(dev));	if (chip == NULL)		return -ENODEV;	memcpy(data, cap_pcr, sizeof(cap_pcr));	if ((len = tpm_transmit(chip, data, sizeof(data)))	    < CAP_PCR_RESULT_SIZE)		return len;	num_pcrs = be32_to_cpu(*((__be32 *) (data + 14)));	for (i = 0; i < num_pcrs; i++) {		memcpy(data, pcrread, sizeof(pcrread));		index = cpu_to_be32(i);		memcpy(data + 10, &index, 4);		if ((len = tpm_transmit(chip, data, sizeof(data)))		    < READ_PCR_RESULT_SIZE)			return len;		str += sprintf(str, "PCR-%02d: ", i);		for (j = 0; j < TPM_DIGEST_SIZE; j++)			str += sprintf(str, "%02X ", *(data + 10 + j));		str += sprintf(str, "\n");	}	return str - buf;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/e234bc970451edc4021637fe2979b887da873f9a/tpm.c/buggy/drivers/char/tpm/tpm.c