aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/tpm/tpm_atmel.c
diff options
context:
space:
mode:
authorKylene Hall <kjhall@us.ibm.com>2005-06-24 01:02:00 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-24 03:05:26 -0400
commit6659ca2ab6730c3bbb9fa495f2327b95b955decd (patch)
tree1b8a9a09a830b0a5233c6e9f073c53260dbef819 /drivers/char/tpm/tpm_atmel.c
parent81179bb6a54c2c626b4cbcc084ca974bb2d7f2a3 (diff)
[PATCH] tpm: sysfs owernship changes
In the current driver all sysfs files end up owned by the base driver module rather than the module that actually owns the device this is a problem if the module is unloaded and the file is open. This patch fixes all that and lumps the files into an attribute_group. Signed-off-by: Kylene Hall <kjhall@us.ibm.com> Signed-off-by: Yani Ioannou <yani.ioannou@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char/tpm/tpm_atmel.c')
-rw-r--r--drivers/char/tpm/tpm_atmel.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/char/tpm/tpm_atmel.c b/drivers/char/tpm/tpm_atmel.c
index 3271391892e8..07abfb7143b1 100644
--- a/drivers/char/tpm/tpm_atmel.c
+++ b/drivers/char/tpm/tpm_atmel.c
@@ -126,6 +126,21 @@ static struct file_operations atmel_ops = {
126 .release = tpm_release, 126 .release = tpm_release,
127}; 127};
128 128
129static DEVICE_ATTR(pubek, S_IRUGO, tpm_show_pubek, NULL);
130static DEVICE_ATTR(pcrs, S_IRUGO, tpm_show_pcrs, NULL);
131static DEVICE_ATTR(caps, S_IRUGO, tpm_show_caps, NULL);
132static DEVICE_ATTR(cancel, S_IWUSR |S_IWGRP, NULL, tpm_store_cancel);
133
134static struct attribute* atmel_attrs[] = {
135 &dev_attr_pubek.attr,
136 &dev_attr_pcrs.attr,
137 &dev_attr_caps.attr,
138 &dev_attr_cancel.attr,
139 0,
140};
141
142static struct attribute_group atmel_attr_grp = { .attrs = atmel_attrs };
143
129static struct tpm_vendor_specific tpm_atmel = { 144static struct tpm_vendor_specific tpm_atmel = {
130 .recv = tpm_atml_recv, 145 .recv = tpm_atml_recv,
131 .send = tpm_atml_send, 146 .send = tpm_atml_send,
@@ -133,6 +148,7 @@ static struct tpm_vendor_specific tpm_atmel = {
133 .req_complete_mask = ATML_STATUS_BUSY | ATML_STATUS_DATA_AVAIL, 148 .req_complete_mask = ATML_STATUS_BUSY | ATML_STATUS_DATA_AVAIL,
134 .req_complete_val = ATML_STATUS_DATA_AVAIL, 149 .req_complete_val = ATML_STATUS_DATA_AVAIL,
135 .base = TPM_ATML_BASE, 150 .base = TPM_ATML_BASE,
151 .attr_group = &atmel_attr_grp,
136 .miscdev = { .fops = &atmel_ops, }, 152 .miscdev = { .fops = &atmel_ops, },
137}; 153};
138 154