Re: [PATCH] Add sysfs support for the IPMI device interface

From: AsterixTheGaul
Date: Sat May 21 2005 - 22:21:56 EST


I get the following compile problem with this change in linus' git repo....

CC [M] drivers/char/ipmi/ipmi_devintf.o
drivers/char/ipmi/ipmi_devintf.c: In function 'ipmi_new_smi':
drivers/char/ipmi/ipmi_devintf.c:532: warning: passing argument 1 of
'class_simple_device_add' from incompatible pointer type
drivers/char/ipmi/ipmi_devintf.c: In function 'ipmi_smi_gone':
drivers/char/ipmi/ipmi_devintf.c:537: warning: passing argument 1 of
'class_simple_device_remove' makes integer from pointer without a cast
drivers/char/ipmi/ipmi_devintf.c:537: error: too many arguments to
function 'class_simple_device_remove'
drivers/char/ipmi/ipmi_devintf.c: In function 'init_ipmi_devintf':
drivers/char/ipmi/ipmi_devintf.c:558: warning: assignment from
incompatible pointer type
drivers/char/ipmi/ipmi_devintf.c:566: warning: passing argument 1 of
'class_simple_destroy' from incompatible pointer type
drivers/char/ipmi/ipmi_devintf.c:580: warning: passing argument 1 of
'class_simple_destroy' from incompatible pointer type
drivers/char/ipmi/ipmi_devintf.c: In function 'cleanup_ipmi':
drivers/char/ipmi/ipmi_devintf.c:591: warning: passing argument 1 of
'class_simple_destroy' from incompatible pointer type
make[3]: *** [drivers/char/ipmi/ipmi_devintf.o] Error 1
make[2]: *** [drivers/char/ipmi] Error 2
make[1]: *** [drivers/char] Error 2
make: *** [drivers] Error 2

Following patch makes it compile...

signed-off AsterixTheGaul <asterixthegaul@xxxxxxxxx>


Compile fix ipmi_devintf.c for problem introduced by the commit change
37e0915b701281182cea9fc90e894d10addf134a

---
commit 1f974bf04b1f2a01e189e01970cb744343ad1bb7
tree c7b157f4d23340a6d773b8d1385c0efb21d4b650
parent b5c44c2147a447f77e07fecdb087ae288e1f4e40
author AsterixTheGaul <asterixthegaul@xxxxxxxxx> Sat, 21 May 2005
20:16:39 +0530committer AsterixTheGaul <asterixthegaul@xxxxxxxxx> Sat,
21 May 2005 20:16:39 +0530

char/ipmi/ipmi_devintf.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

Index: drivers/char/ipmi/ipmi_devintf.c
===================================================================
--- ec1d95eb1e03e320fc5eb5cfb40379f2f4a7267d/drivers/char/ipmi/ipmi_devintf.c
(mode:100644)
+++ c7b157f4d23340a6d773b8d1385c0efb21d4b650/drivers/char/ipmi/ipmi_devintf.c
(mode:100644)
@@ -520,7 +520,7 @@
" interface. Other values will set the major device number"
" to that value.");

-static struct class *ipmi_class;
+static struct class_simple *ipmi_class;





On 5/20/05, Corey Minyard <minyard@xxxxxxx> wrote:
> 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@xxxxxxx>
> >Signed-off-by: Philipp Hahn <pmhahn@xxxxxxxxxxxxx>
> >
> >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@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/