bk://kernel.bkbits.net/gregkh/linux/driver-2.6 greg@kroah.com|ChangeSet|20040904225919|48307 greg # This is a BitKeeper generated diff -Nru style patch. # # lib/kobject.c # 2004/09/05 00:58:23+02:00 greg@kroah.com +1 -1 # kobject: fix build error if CONFIG_HOTPLUG is not enabled. # # Thanks to Kay Sievers for pointing this out. # # Signed-off-by: Greg Kroah-Hartman # # lib/kobject.c # 2004/09/04 01:19:44+02:00 greg@kroah.com +1 -1 # kobject: adjust hotplug_seqnum increment to keep userspace and kernel agreeing. # # lib/kobject.c # 2004/09/03 11:00:55+02:00 kay.sievers@vrfy.org +2 -2 # export of SEQNUM to userspace (creates /sys/kernel) # # include/linux/kobject.h # 2004/09/03 11:00:55+02:00 kay.sievers@vrfy.org +3 -0 # export of SEQNUM to userspace (creates /sys/kernel) # # ChangeSet # 2004/09/04 17:52:24-07:00 akpm@bix.(none) # Merge bk://kernel.bkbits.net/gregkh/linux/driver-2.6 # into bix.(none):/usr/src/bk-driver-core # # kernel/Makefile # 2004/09/04 17:52:20-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/09/05 00:59:19+02:00 greg@kroah.com # kobject: fix build error if CONFIG_HOTPLUG is not enabled. # # Thanks to Kay Sievers for pointing this out. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/09/04 18:56:35+02:00 greg@kroah.com # ksysfs: don't build ksysfs if CONFIG_SYSFS is not enabled. # # Thanks to Kay Sievers for pointing this out. # # Signed-off-by: Greg Kroah-Hartman # # kernel/Makefile # 2004/09/04 18:56:13+02:00 greg@kroah.com +2 -1 # ksysfs: don't build ksysfs if CONFIG_SYSFS is not enabled. # # Thanks to Kay Sievers for pointing this out. # # Signed-off-by: Greg Kroah-Hartman # # ChangeSet # 2004/09/04 01:20:44+02:00 greg@kroah.com # kobject: adjust hotplug_seqnum increment to keep userspace and kernel agreeing. # # ChangeSet # 2004/09/04 00:11:26+02:00 kay.sievers@vrfy.org # [PATCH] export of SEQNUM to userspace (creates /sys/kernel) # # o /sys/kernel/hotplug_seqnum exports the current number # o lib/kobject.c's sequence_num is renamed to hotplug_seqnum and # exported by include/linux/kobject.h # o the source file ksysfs.c in kernel/ creates on init the # sybsystem "/sys/kernel/" in sysfs # # # Signed-off-by: Greg Kroah-Hartman # # kernel/Makefile # 2004/09/03 11:00:55+02:00 kay.sievers@vrfy.org +1 -1 # export of SEQNUM to userspace (creates /sys/kernel) # # kernel/ksysfs.c # 2004/09/03 11:00:55+02:00 kay.sievers@vrfy.org +52 -0 # export of SEQNUM to userspace (creates /sys/kernel) # # kernel/ksysfs.c # 2004/09/03 11:00:55+02:00 kay.sievers@vrfy.org +0 -0 # BitKeeper file /home/greg/linux/BK/driver-2.6/kernel/ksysfs.c # # ChangeSet # 2004/09/02 16:50:51-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core # # drivers/char/tty_io.c # 2004/09/02 16:50:47-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/28 16:22:31-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core # # drivers/scsi/sr.c # 2004/08/28 16:22:27-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sd.c # 2004/08/28 16:22:27-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/26 19:33:03-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core # # drivers/usb/core/message.c # 2004/08/26 19:32:57-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/25 14:11:23-07:00 akpm@bix.(none) # Merge bk://kernel.bkbits.net/gregkh/linux/driver-2.6 # into bix.(none):/usr/src/bk-driver-core # # drivers/usb/core/urb.c # 2004/08/25 14:11:19-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/usb/core/message.c # 2004/08/25 14:11:19-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sr.c # 2004/08/25 14:11:19-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sd.c # 2004/08/25 14:11:19-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/char/tty_io.c # 2004/08/25 14:11:19-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/24 17:43:51-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core # # drivers/char/tty_io.c # 2004/08/24 17:43:47-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/23 21:36:39-07:00 akpm@bix.(none) # Merge bk://kernel.bkbits.net/gregkh/linux/driver-2.6 # into bix.(none):/usr/src/bk-driver-core # # ChangeSet # 2004/08/23 16:45:53-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core # # drivers/scsi/sr.c # 2004/08/23 21:36:35-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sd.c # 2004/08/23 21:36:35-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/usb/core/urb.c # 2004/08/23 16:45:49-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/usb/core/message.c # 2004/08/23 16:45:49-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/23 13:56:59-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core # # drivers/scsi/sd.c # 2004/08/23 13:56:55-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/15 01:06:01-07:00 akpm@bix.(none) # Merge bk://kernel.bkbits.net/gregkh/linux/driver-2.6 # into bix.(none):/usr/src/bk-driver-core # # drivers/char/tty_io.c # 2004/08/15 01:05:58-07:00 akpm@bix.(none) +0 -0 # Auto merged # # ChangeSet # 2004/08/15 01:05:05-07:00 akpm@bix.(none) # Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core # # drivers/scsi/sr.c # 2004/08/15 01:05:02-07:00 akpm@bix.(none) +0 -0 # Auto merged # # drivers/scsi/sd.c # 2004/08/15 01:05:01-07:00 akpm@bix.(none) +0 -0 # Auto merged # diff -Nru a/include/linux/kobject.h b/include/linux/kobject.h --- a/include/linux/kobject.h 2004-09-06 17:23:38 -07:00 +++ b/include/linux/kobject.h 2004-09-06 17:23:38 -07:00 @@ -26,6 +26,9 @@ #define KOBJ_NAME_LEN 20 +/* counter to tag the hotplug event, read only except for the kobject core */ +extern unsigned long hotplug_seqnum; + struct kobject { char * k_name; char name[KOBJ_NAME_LEN]; diff -Nru a/kernel/Makefile b/kernel/Makefile --- a/kernel/Makefile 2004-09-06 17:23:38 -07:00 +++ b/kernel/Makefile 2004-09-06 17:23:38 -07:00 @@ -7,7 +7,7 @@ sysctl.o capability.o ptrace.o timer.o user.o \ signal.o sys.o kmod.o workqueue.o pid.o \ rcupdate.o intermodule.o extable.o params.o posix-timers.o \ - kthread.o + kthread.o obj-$(CONFIG_FUTEX) += futex.o obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o @@ -24,6 +24,7 @@ obj-$(CONFIG_AUDIT) += audit.o obj-$(CONFIG_AUDITSYSCALL) += auditsc.o obj-$(CONFIG_KPROBES) += kprobes.o +obj-$(CONFIG_SYSFS) += ksysfs.o ifneq ($(CONFIG_IA64),y) # According to Alan Modra , the -fno-omit-frame-pointer is diff -Nru a/kernel/ksysfs.c b/kernel/ksysfs.c --- /dev/null Wed Dec 31 16:00:00 196900 +++ b/kernel/ksysfs.c 2004-09-06 17:23:38 -07:00 @@ -0,0 +1,52 @@ +/* + * kernel/ksysfs.c - sysfs attributes in /sys/kernel, which + * are not related to any other subsystem + * + * Copyright (C) 2004 Kay Sievers + * + * This file is release under the GPLv2 + * + */ + +#include +#include +#include +#include +#include +#include + +#define KERNEL_ATTR_RO(_name) \ +static struct subsys_attribute _name##_attr = __ATTR_RO(_name) + +#define KERNEL_ATTR_RW(_name) \ +static struct subsys_attribute _name##_attr = \ + __ATTR(_name, 0644, _name##_show, _name##_store) + +static ssize_t hotplug_seqnum_show(struct subsystem *subsys, char *page) +{ + return sprintf(page, "%lu\n", hotplug_seqnum); +} +KERNEL_ATTR_RO(hotplug_seqnum); + + +static decl_subsys(kernel, NULL, NULL); + +static struct attribute * kernel_attrs[] = { + &hotplug_seqnum_attr.attr, + NULL +}; + +static struct attribute_group kernel_attr_group = { + .attrs = kernel_attrs, +}; + +static int __init ksysfs_init(void) +{ + int error = subsystem_register(&kernel_subsys); + if (!error) + error = sysfs_create_group(&kernel_subsys.kset.kobj, &kernel_attr_group); + + return error; +} + +core_initcall(ksysfs_init); diff -Nru a/lib/kobject.c b/lib/kobject.c --- a/lib/kobject.c 2004-09-06 17:23:38 -07:00 +++ b/lib/kobject.c 2004-09-06 17:23:38 -07:00 @@ -118,11 +118,11 @@ return path; } +unsigned long hotplug_seqnum; #ifdef CONFIG_HOTPLUG #define BUFFER_SIZE 1024 /* should be enough memory for the env */ #define NUM_ENVP 32 /* number of env pointers */ -static unsigned long sequence_num; static spinlock_t sequence_lock = SPIN_LOCK_UNLOCKED; static void kset_hotplug(const char *action, struct kset *kset, @@ -178,7 +178,7 @@ scratch += sprintf(scratch, "ACTION=%s", action) + 1; spin_lock(&sequence_lock); - seq = sequence_num++; + seq = ++hotplug_seqnum; spin_unlock(&sequence_lock); envp [i++] = scratch;