lkml.org 
[lkml]   [2005]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Add sysfs support for the IPMI device interface
Philipp Matthias Hahn wrote:

>
>
>What happend to Dimitry Torokovs comment in
>http://marc.theaimsgroup.com/?l=linux-kernel&m=111232712029756&w=2
>and your reply in
>http://marc.theaimsgroup.com/?l=linux-kernel&m=111232954415119&w=2
>According to linux/device.h:250, class_simple_device_add() has a
>printf() like argument, so you don't need to snprintf() the name on your
>own.
>
>
Thank you. My stupid mailer ate the tabs, and you fixed that, too.
This looks good to go in.

-Corey

>Add support for sysfs to the IPMI device interface.
>
>Signed-off-by: Corey Minyard <minyard@acm.org>
>Signed-off-by: Philipp Hahn <pmhahn@titan.lahn.de>
>
>Index: linux-2.6.12-rc1/drivers/char/ipmi/ipmi_devintf.c
>===================================================================
>--- linux-2.6.12-rc1.orig/drivers/char/ipmi/ipmi_devintf.c
>+++ linux-2.6.12-rc1/drivers/char/ipmi/ipmi_devintf.c
>@@ -44,6 +44,7 @@
> #include <linux/ipmi.h>
> #include <asm/semaphore.h>
> #include <linux/init.h>
>+#include <linux/device.h>
>
> #define IPMI_DEVINTF_VERSION "v33"
>
>@@ -519,15 +520,21 @@
> " interface. Other values will set the major device number"
> " to that value.");
>
>+static struct class *ipmi_class;
>+
> static void ipmi_new_smi(int if_num)
> {
>- devfs_mk_cdev(MKDEV(ipmi_major, if_num),
>- S_IFCHR | S_IRUSR | S_IWUSR,
>+ dev_t dev = MKDEV(ipmi_major, if_num);
>+
>+ devfs_mk_cdev(dev, S_IFCHR | S_IRUSR | S_IWUSR,
> "ipmidev/%d", if_num);
>+
>+ class_simple_device_add(ipmi_class, dev, NULL, "ipmi%d", if_num);
> }
>
> static void ipmi_smi_gone(int if_num)
> {
>+ class_simple_device_remove(ipmi_class, MKDEV(ipmi_major, if_num));
> devfs_remove("ipmidev/%d", if_num);
> }
>
>@@ -548,8 +555,15 @@
> printk(KERN_INFO "ipmi device interface version "
> IPMI_DEVINTF_VERSION "\n");
>
>+ ipmi_class = class_simple_create(THIS_MODULE, "ipmi");
>+ if (IS_ERR(ipmi_class)) {
>+ printk(KERN_ERR "ipmi: can't register device class\n");
>+ return PTR_ERR(ipmi_class);
>+ }
>+
> rv = register_chrdev(ipmi_major, DEVICE_NAME, &ipmi_fops);
> if (rv < 0) {
>+ class_simple_destroy(ipmi_class);
> printk(KERN_ERR "ipmi: can't get major %d\n", ipmi_major);
> return rv;
> }
>@@ -563,6 +577,7 @@
> rv = ipmi_smi_watcher_register(&smi_watcher);
> if (rv) {
> unregister_chrdev(ipmi_major, DEVICE_NAME);
>+ class_simple_destroy(ipmi_class);
> printk(KERN_WARNING "ipmi: can't register smi watcher\n");
> return rv;
> }
>@@ -573,6 +588,7 @@
>
> static __exit void cleanup_ipmi(void)
> {
>+ class_simple_destroy(ipmi_class);
> ipmi_smi_watcher_unregister(&smi_watcher);
> devfs_remove(DEVICE_NAME);
> unregister_chrdev(ipmi_major, DEVICE_NAME);
>
>BYtE
>Philipp
>
>

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-05-20 15:04    [W:0.073 / U:1.232 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site