[libvirt] [PATCH v5 04/11] Helper functions for host TPM support
Stefan Berger
stefanb at linux.vnet.ibm.com
Fri Apr 12 12:40:18 UTC 2013
On 04/12/2013 06:24 AM, Daniel P. Berrange wrote:
> On Thu, Apr 11, 2013 at 04:04:46PM -0400, Stefan Berger wrote:
>> Implement helper functions to find the TPM's sysfs cancel file.
>>
>> Signed-off-by: Stefan Berger <stefanb at linux.vnet.ibm.com>
>> Reviewed-by: Corey Bryant <coreyb at linux.vnet.ibm.com>
>> Tested-by: Corey Bryant <coreyb at linux.vnet.ibm.com>
>>
>> Hmm, actually on second thoughts the entirely approach for this
>> method is just flawed.
>>
>> In the XML description you have:
>>
>> <device path='/dev/tpm0'/>
>>
>> So we should not be iterating over /sys/fs/misc/tpmNNN at all.
>> We know exactly which TPM device we want - it is 'tpm0'. Just
>> kill all this pointless readdir code & pass in the device name
>> we want to get the cancel path for.
Indeed, the following is better:
/**
* virTPMFindCancelPath:
* @devpath: Path to the TPM device
*
* Find the cancel path given the path to the TPM device
*/
char *
virTPMFindCancelPath(const char *devpath)
{
char *basepath = NULL;
char *path = NULL;
const char *dev;
if (devpath) {
dev = rindex(devpath, '/');
if (dev) {
dev++;
if (virAsprintf(&basepath, "/sys/class/misc/%s/device",
dev) < 0) {
virReportOOMError();
goto cleanup;
}
path = virTPMCheckSysfsCancel(basepath);
} else {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("TPM device path %s is invalid"), devpath);
}
} else {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Missing TPM device path"));
}
cleanup:
VIR_FREE(basepath);
return path;
}
Thank you.
Stefan
More information about the libvir-list
mailing list