Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 41180
b: refs/heads/master
c: 94fbcde
h: refs/heads/master
v: v3
  • Loading branch information
Greg Kroah-Hartman committed Dec 1, 2006
1 parent 2b4bb3c commit 8bb3784
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 34 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: cd15422b9f39155e2d9ea56ae95c6f62aa5df42e
refs/heads/master: 94fbcded4ea0dc14cbfb222a5c68372f150d1476
38 changes: 19 additions & 19 deletions trunk/drivers/char/hw_random/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,8 @@ static struct miscdevice rng_miscdev = {
};


static ssize_t hwrng_attr_current_store(struct class_device *class,
static ssize_t hwrng_attr_current_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t len)
{
int err;
Expand Down Expand Up @@ -192,7 +193,8 @@ static ssize_t hwrng_attr_current_store(struct class_device *class,
return err ? : len;
}

static ssize_t hwrng_attr_current_show(struct class_device *class,
static ssize_t hwrng_attr_current_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{
int err;
Expand All @@ -210,7 +212,8 @@ static ssize_t hwrng_attr_current_show(struct class_device *class,
return ret;
}

static ssize_t hwrng_attr_available_show(struct class_device *class,
static ssize_t hwrng_attr_available_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{
int err;
Expand All @@ -234,20 +237,18 @@ static ssize_t hwrng_attr_available_show(struct class_device *class,
return ret;
}

static CLASS_DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,
hwrng_attr_current_show,
hwrng_attr_current_store);
static CLASS_DEVICE_ATTR(rng_available, S_IRUGO,
hwrng_attr_available_show,
NULL);
static DEVICE_ATTR(rng_current, S_IRUGO | S_IWUSR,
hwrng_attr_current_show,
hwrng_attr_current_store);
static DEVICE_ATTR(rng_available, S_IRUGO,
hwrng_attr_available_show,
NULL);


static void unregister_miscdev(void)
{
class_device_remove_file(rng_miscdev.class,
&class_device_attr_rng_available);
class_device_remove_file(rng_miscdev.class,
&class_device_attr_rng_current);
device_remove_file(rng_miscdev.this_device, &dev_attr_rng_available);
device_remove_file(rng_miscdev.this_device, &dev_attr_rng_current);
misc_deregister(&rng_miscdev);
}

Expand All @@ -258,20 +259,19 @@ static int register_miscdev(void)
err = misc_register(&rng_miscdev);
if (err)
goto out;
err = class_device_create_file(rng_miscdev.class,
&class_device_attr_rng_current);
err = device_create_file(rng_miscdev.this_device,
&dev_attr_rng_current);
if (err)
goto err_misc_dereg;
err = class_device_create_file(rng_miscdev.class,
&class_device_attr_rng_available);
err = device_create_file(rng_miscdev.this_device,
&dev_attr_rng_available);
if (err)
goto err_remove_current;
out:
return err;

err_remove_current:
class_device_remove_file(rng_miscdev.class,
&class_device_attr_rng_current);
device_remove_file(rng_miscdev.this_device, &dev_attr_rng_current);
err_misc_dereg:
misc_deregister(&rng_miscdev);
goto out;
Expand Down
13 changes: 4 additions & 9 deletions trunk/drivers/char/misc.c
Original file line number Diff line number Diff line change
Expand Up @@ -169,11 +169,6 @@ static int misc_open(struct inode * inode, struct file * file)
return err;
}

/*
* TODO for 2.7:
* - add a struct kref to struct miscdevice and make all usages of
* them dynamic.
*/
static struct class *misc_class;

static const struct file_operations misc_fops = {
Expand Down Expand Up @@ -228,10 +223,10 @@ int misc_register(struct miscdevice * misc)
misc_minors[misc->minor >> 3] |= 1 << (misc->minor & 7);
dev = MKDEV(MISC_MAJOR, misc->minor);

misc->class = class_device_create(misc_class, NULL, dev, misc->dev,
misc->this_device = device_create(misc_class, misc->parent, dev,
"%s", misc->name);
if (IS_ERR(misc->class)) {
err = PTR_ERR(misc->class);
if (IS_ERR(misc->this_device)) {
err = PTR_ERR(misc->this_device);
goto out;
}

Expand Down Expand Up @@ -264,7 +259,7 @@ int misc_deregister(struct miscdevice * misc)

down(&misc_sem);
list_del(&misc->list);
class_device_destroy(misc_class, MKDEV(MISC_MAJOR, misc->minor));
device_destroy(misc_class, MKDEV(MISC_MAJOR, misc->minor));
if (i < DYNAMIC_MINORS && i>0) {
misc_minors[i>>3] &= ~(1 << (misc->minor & 7));
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/char/tpm/tpm.c
Original file line number Diff line number Diff line change
Expand Up @@ -1130,7 +1130,7 @@ struct tpm_chip *tpm_register_hardware(struct device *dev, const struct tpm_vend
scnprintf(devname, DEVNAME_SIZE, "%s%d", "tpm", chip->dev_num);
chip->vendor.miscdev.name = devname;

chip->vendor.miscdev.dev = dev;
chip->vendor.miscdev.parent = dev;
chip->dev = get_device(dev);

if (misc_register(&chip->vendor.miscdev)) {
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/input/serio/serio_raw.c
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)

serio_raw->dev.minor = PSMOUSE_MINOR;
serio_raw->dev.name = serio_raw->name;
serio_raw->dev.dev = &serio->dev;
serio_raw->dev.parent = &serio->dev;
serio_raw->dev.fops = &serio_raw_fops;

err = misc_register(&serio_raw->dev);
Expand Down
5 changes: 2 additions & 3 deletions trunk/include/linux/miscdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,14 @@
#define HPET_MINOR 228

struct device;
struct class_device;

struct miscdevice {
int minor;
const char *name;
const struct file_operations *fops;
struct list_head list;
struct device *dev;
struct class_device *class;
struct device *parent;
struct device *this_device;
};

extern int misc_register(struct miscdevice * misc);
Expand Down

0 comments on commit 8bb3784

Please sign in to comment.