extern u64 hotplug_seqnum;
 
 struct kobject {
-       char                    * k_name;
+       const char              * k_name;
        char                    name[KOBJ_NAME_LEN];
        struct kref             kref;
        struct list_head        entry;
 extern int kobject_set_name(struct kobject *, const char *, ...)
        __attribute__((format(printf,2,3)));
 
-static inline char * kobject_name(struct kobject * kobj)
+static inline const char * kobject_name(const struct kobject * kobj)
 {
        return kobj->k_name;
 }
 extern int kobject_add(struct kobject *);
 extern void kobject_del(struct kobject *);
 
-extern int kobject_rename(struct kobject *, char *new_name);
+extern int kobject_rename(struct kobject *, const char *new_name);
 
 extern int kobject_register(struct kobject *);
 extern void kobject_unregister(struct kobject *);
 
  *     @new_name: object's new name
  */
 
-int kobject_rename(struct kobject * kobj, char *new_name)
+int kobject_rename(struct kobject * kobj, const char *new_name)
 {
        int error = 0;
 
 
        int i = 0;
        int retval;
        char *kobj_path = NULL;
-       char *name = NULL;
+       const char *name = NULL;
        char *action_string;
        u64 seq;
        struct kobject *top_kobj = kobj;
                name = kobject_name(&kset->kobj);
 
        argv [0] = hotplug_path;
-       argv [1] = name;
+       argv [1] = (char *)name; /* won't be changed but 'const' has to go */
        argv [2] = NULL;
 
        /* minimal command environment */