bk://kernel.bkbits.net/gregkh/linux/driver-2.6
greg@kroah.com|ChangeSet|20041102020015|53889 greg

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/11/04 18:30:17-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# fs/sysfs/dir.c
#   2004/11/04 18:30:14-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# drivers/usb/core/usb.c
#   2004/11/04 18:30:14-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/11/04 13:11:46-08:00 akpm@bix.(none) 
#   Merge bk://kernel.bkbits.net/gregkh/linux/driver-2.6
#   into bix.(none):/usr/src/bk-driver-core
# 
# fs/sysfs/file.c
#   2004/11/04 13:11:42-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# drivers/base/bus.c
#   2004/11/04 13:11:42-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/11/03 19:44:15-08:00 akpm@bix.(none) 
#   Merge bk://kernel.bkbits.net/gregkh/linux/driver-2.6
#   into bix.(none):/usr/src/bk-driver-core
# 
# fs/sysfs/sysfs.h
#   2004/11/03 19:44:11-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# fs/sysfs/symlink.c
#   2004/11/03 19:44:11-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# fs/sysfs/mount.c
#   2004/11/03 19:44:11-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# fs/sysfs/inode.c
#   2004/11/03 19:44:11-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# fs/sysfs/dir.c
#   2004/11/03 19:44:11-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/11/03 13:18:05-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# kernel/Makefile
#   2004/11/03 13:18:02-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/11/01 22:04:43-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# include/linux/sysfs.h
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -19
#   Auto merged
# 
# include/linux/device.h
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -3
#   Auto merged
# 
# fs/sysfs/sysfs.h
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -70
#   Auto merged
# 
# fs/sysfs/symlink.c
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -34
#   Auto merged
# 
# fs/sysfs/mount.c
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -10
#   Auto merged
# 
# fs/sysfs/inode.c
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -70
#   Auto merged
# 
# fs/sysfs/group.c
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -3
#   Auto merged
# 
# fs/sysfs/file.c
#   2004/11/01 22:04:39-08:00 akpm@bix.(none) +0 -44
#   Auto merged
# 
# fs/sysfs/dir.c
#   2004/11/01 22:04:38-08:00 akpm@bix.(none) +0 -317
#   Auto merged
# 
# fs/sysfs/bin.c
#   2004/11/01 22:04:38-08:00 akpm@bix.(none) +0 -10
#   Auto merged
# 
# drivers/base/power/suspend.c
#   2004/11/01 22:04:38-08:00 akpm@bix.(none) +0 -25
#   Auto merged
# 
# drivers/base/power/resume.c
#   2004/11/01 22:04:38-08:00 akpm@bix.(none) +0 -13
#   Auto merged
# 
# drivers/base/power/power.h
#   2004/11/01 22:04:38-08:00 akpm@bix.(none) +0 -5
#   Auto merged
# 
# drivers/base/power/main.c
#   2004/11/01 22:04:38-08:00 akpm@bix.(none) +0 -6
#   Auto merged
# 
# drivers/base/bus.c
#   2004/11/01 22:04:38-08:00 akpm@bix.(none) +0 -32
#   Auto merged
# 
# ChangeSet
#   2004/10/29 03:13:51-05:00 dtor_core@ameritech.net 
#   [PATCH] Driver core: add driver_probe_device
#   
#   Driver core: rename bus_match into driver_probe_device and export
#                it so subsystems can bind an individual device to a
#                specific driver without getting involved with driver
#                core internals.
#   
#   Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# include/linux/device.h
#   2004/10/12 01:28:06-05:00 dtor_core@ameritech.net +2 -1
#   Driver core: add driver_probe_device
# 
# drivers/base/bus.c
#   2004/10/12 01:28:06-05:00 dtor_core@ameritech.net +29 -26
#   Driver core: add driver_probe_device
# 
# ChangeSet
#   2004/10/29 03:12:31-05:00 dtor_core@ameritech.net 
#   [PATCH] Driver core: export device_attach
#   
#   Driver core: make device_attach() global and export it and
#                driver_attach() so subsystems can have finer
#                control over binding process.
#   
#   Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# include/linux/device.h
#   2004/10/12 01:27:27-05:00 dtor_core@ameritech.net +1 -0
#   Driver core: export device_attach
# 
# drivers/base/bus.c
#   2004/10/12 01:27:27-05:00 dtor_core@ameritech.net +3 -1
#   Driver core: export device_attach
# 
# ChangeSet
#   2004/10/28 17:39:42-05:00 akpm@osdl.org 
#   [PATCH] Fix deadlocks on dpm_sem
#   
#   From: Paul Mackerras <paulus@samba.org>
#   
#   Currently the device_pm_foo() functions are rather prone to deadlocks
#   during suspend/resume.  This is because the dpm_sem is held for the
#   duration of device_suspend() and device_resume() as well as device_pm_add()
#   and device_pm_remove().  If for any reason you get a device addition or
#   removal triggered by a device's suspend or resume code, you get a deadlock.
#    (The classic example is a USB host adaptor resuming and discovering that
#   the mouse you used to have plugged in has gone away.)
#   
#   This patch fixes the problem by using a separate semaphore, called
#   dpm_list_sem, to cover the places where we need the device pm lists to be
#   stable, and by being careful about how we traverse the lists on suspend and
#   resume.  I have analysed the various cases that can occur and I am
#   confident that I have handled them all correctly.  I posted this patch
#   together with a detailed analysis 10 days ago.
#   
#   Signed-off-by Paul Mackerras <paulus@samba.org>
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# drivers/base/power/suspend.c
#   2004/10/21 23:24:28-05:00 akpm@osdl.org +25 -19
#   Fix deadlocks on dpm_sem
# 
# drivers/base/power/resume.c
#   2004/10/21 23:24:28-05:00 akpm@osdl.org +13 -3
#   Fix deadlocks on dpm_sem
# 
# drivers/base/power/power.h
#   2004/10/21 23:24:28-05:00 akpm@osdl.org +5 -0
#   Fix deadlocks on dpm_sem
# 
# drivers/base/power/main.c
#   2004/10/21 23:24:28-05:00 akpm@osdl.org +6 -5
#   Fix deadlocks on dpm_sem
# 
# ChangeSet
#   2004/10/28 17:38:59-05:00 akpm@osdl.org 
#   [PATCH] Possible race in sysfs_read_file() and sysfs_write_file()
#   
#   From: Simon Derr <Simon.Derr@bull.net>
#   
#   Add a `needs_read_fill' field in sysfs_buffer so that reading after a write in
#   a sysfs file returns valid data.
#   
#   (instead of the data that have been written, that may be invalid or at the
#   wrong offset)
#   
#   Signed-off-by: Simon Derr <simon.derr@bull.net>
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# fs/sysfs/file.c
#   2004/10/18 23:43:24-05:00 akpm@osdl.org +5 -1
#   Possible race in sysfs_read_file() and sysfs_write_file()
# 
# ChangeSet
#   2004/10/28 17:38:01-05:00 akpm@osdl.org 
#   [PATCH] Fix race in sysfs_read_file() and sysfs_write_file()
#   
#   From: Simon Derr <Simon.Derr@bull.net>
#   
#   - fixes the race between threads by adding a semaphore in sysfs_buffer
#   
#   - allocates the buffer upon call to pread().  We still call again
#     fill_read_buffer() if the file is "rewinded" to offset zero.
#   
#   - fixes the comparison in flush_read_buffer().
#   
#   Signed-off-by: Simon Derr <simon.derr@bull.net>
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# fs/sysfs/file.c
#   2004/10/18 23:47:25-05:00 akpm@osdl.org +15 -3
#   Fix race in sysfs_read_file() and sysfs_write_file()
# 
# ChangeSet
#   2004/10/28 17:32:46-05:00 akpm@osdl.org 
#   [PATCH] sysfs backing store: stop pinning dentries/inodes for leaf entries
#   
#   From: Maneesh Soni <maneesh@in.ibm.com>
#   
#   o This patch stops the pinning of non-directory or leaf dentries and inodes.
#     The leaf dentries and inodes are created during lookup based on the
#     entries on sysfs_dirent tree. These leaves are removed from the dcache
#     through the VFS dentry ageing process during shrink dcache operations. Thus
#     reducing about 80% of sysfs lowmem needs.
#   
#   o This implments the ->lookup() for sysfs directory inodes and allocates
#     dentry and inode if the lookup is successful and avoids the need of
#     allocating and pinning of dentry and inodes during the creation of
#     corresponding sysfs leaf entry. As of now the implementation has not
#     required negative dentry creation on failed lookup. As sysfs is still a
#     RAM based filesystem, negative dentries are not of any use IMO.
#   
#   o The leaf dentry allocated after successful lookup is connected to the
#     existing corresponding sysfs_dirent through the d_fsdata field.
#   
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# fs/sysfs/sysfs.h
#   2004/10/18 23:42:34-05:00 akpm@osdl.org +4 -0
#   sysfs backing store: stop pinning dentries/inodes for leaf entries
# 
# fs/sysfs/symlink.c
#   2004/10/18 23:42:34-05:00 akpm@osdl.org +5 -21
#   sysfs backing store: stop pinning dentries/inodes for leaf entries
# 
# fs/sysfs/mount.c
#   2004/10/18 23:42:34-05:00 akpm@osdl.org +1 -1
#   sysfs backing store: stop pinning dentries/inodes for leaf entries
# 
# fs/sysfs/file.c
#   2004/10/18 23:47:25-05:00 akpm@osdl.org +3 -22
#   sysfs backing store: stop pinning dentries/inodes for leaf entries
# 
# fs/sysfs/dir.c
#   2004/10/18 23:47:25-05:00 akpm@osdl.org +100 -6
#   sysfs backing store: stop pinning dentries/inodes for leaf entries
# 
# fs/sysfs/bin.c
#   2004/10/18 23:42:34-05:00 akpm@osdl.org +2 -26
#   sysfs backing store: stop pinning dentries/inodes for leaf entries
# 
# ChangeSet
#   2004/10/28 17:31:57-05:00 akpm@osdl.org 
#   [PATCH] sysfs backing store: use sysfs_dirent based tree in dir file operations
#   
#   From: Maneesh Soni <maneesh@in.ibm.com>
#   
#   o This patch implements the sysfs_dir_operations file_operations strucutre for
#     sysfs directories. It uses the sysfs_dirent based tree for ->readdir() and
#     ->lseek() methods instead of simple_dir_operations which use dentry based
#     tree.
#   
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# fs/sysfs/sysfs.h
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +2 -0
#   sysfs backing store: use sysfs_dirent based tree in dir file operations
# 
# fs/sysfs/mount.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +1 -1
#   sysfs backing store: use sysfs_dirent based tree in dir file operations
# 
# fs/sysfs/dir.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +140 -1
#   sysfs backing store: use sysfs_dirent based tree in dir file operations
# 
# ChangeSet
#   2004/10/28 17:31:11-05:00 akpm@osdl.org 
#   [PATCH] sysfs backing store: use sysfs_dirent based tree in file removal
#   
#   From: Maneesh Soni <maneesh@in.ibm.com>
#   
#   o This patch uses the sysfs_dirent based tree while removing sysfs files
#     and directories. This avoids holding dcache_lock by not using dentry
#     based vfs tree. Thus simplyfying the removal logic in sysfs.
#   
#   o It uses two helper routines sysfs_get_name(), to get the name for
#     sysfs element and sysfs_drop_dentry() to delete the dentry given a
#     sysfs_dirent.
#   
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# fs/sysfs/sysfs.h
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +18 -0
#   sysfs backing store: use sysfs_dirent based tree in file removal
# 
# fs/sysfs/inode.c
#   2004/10/18 23:42:33-05:00 akpm@osdl.org +66 -26
#   sysfs backing store: use sysfs_dirent based tree in file removal
# 
# fs/sysfs/dir.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +11 -37
#   sysfs backing store: use sysfs_dirent based tree in file removal
# 
# ChangeSet
#   2004/10/28 17:30:07-05:00 akpm@osdl.org 
#   [PATCH] sysfs backing store - add sysfs_direct structure
#   
#   From: Maneesh Soni <maneesh@in.ibm.com>
#   
#   o This patch introduces the new sysfs_dirent data structure. The sysfs_dirent
#     is added to the dentry corresponding to each of the element which can be
#     represented in sysfs like, kobject (directory), text or binary attributes
#     (files), attribute groups (directory) and symlinks.
#   
#   o It uses dentry's d_fsdata field to attach the corresponding sysfs_dirent.
#   
#   o The sysfs_dirents are maintained in a tree of all the sysfs entries using the
#     s_children and s_sibling list pointers.
#   
#   o This patch also changes how we access attributes and kobjects in
#     file_operations from a given dentry, basically introducing one more level of
#     indirection.
#   
#   o The sysfs_dirents are freed and the sysfs_dirent tree is updated accordingly
#     upon the deletion of corresponding dentry. The sysfs dirents are kept alive
#     as long as there is corresponding dentry around. The are freed when the
#     dentry is finally out of dcache using the ->d_iput() method.
#   
#   o This also fixes the dentry leaks in case of error paths after sysfs has
#     got a newly alocated (and hashed) dentry from sysfs_get_dentry() by
#     d_drop()'ing the dentry.
#   
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# include/linux/sysfs.h
#   2004/10/18 23:42:33-05:00 akpm@osdl.org +19 -0
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/sysfs.h
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +33 -6
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/symlink.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +35 -4
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/mount.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +8 -0
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/inode.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +8 -2
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/group.c
#   2004/10/18 23:42:33-05:00 akpm@osdl.org +3 -1
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/file.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +15 -10
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/dir.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +75 -9
#   sysfs backing store - add sysfs_direct structure
# 
# fs/sysfs/bin.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +8 -6
#   sysfs backing store - add sysfs_direct structure
# 
# ChangeSet
#   2004/10/28 17:29:22-05:00 akpm@osdl.org 
#   [PATCH] fix oops with firmware loading
#   
#   From: Maneesh Soni <maneesh@in.ibm.com>
#   
#   My fault, a bad typo in fs/sysfs/bin.c.
#   
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# fs/sysfs/bin.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +2 -2
#   fix oops with firmware loading
# 
# ChangeSet
#   2004/10/28 17:28:22-05:00 akpm@osdl.org 
#   [PATCH] sysfs backing store - prepare sysfs_file_operations helpers
#   
#   From: Maneesh Soni <maneesh@in.ibm.com>
#   
#   o The following patch provides dumb helpers to access the corresponding
#     kobject, attribute or binary attribute given a dentry and prepare the
#     sysfs_file_operation methods for using sysfs_dirents.
#   
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# fs/sysfs/sysfs.h
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +17 -1
#   sysfs backing store - prepare sysfs_file_operations helpers
# 
# fs/sysfs/file.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +12 -12
#   sysfs backing store - prepare sysfs_file_operations helpers
# 
# fs/sysfs/bin.c
#   2004/10/18 23:47:26-05:00 akpm@osdl.org +7 -7
#   sysfs backing store - prepare sysfs_file_operations helpers
# 
# ChangeSet
#   2004/10/25 19:17:25-07:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# include/linux/module.h
#   2004/10/25 19:17:19-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/10/24 22:03:33-07:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# lib/Makefile
#   2004/10/24 22:03:29-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/10/22 21:07:02-07:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# lib/Makefile
#   2004/10/22 21:06:58-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# drivers/usb/core/usb.c
#   2004/10/22 21:06:58-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/10/22 17:01:27-07:00 greg@kroah.com 
#   cpu: mark symbol EXPORT_SYMBOL_GPL
#   
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# drivers/base/cpu.c
#   2004/10/22 17:01:16-07:00 greg@kroah.com +1 -1
#   cpu: mark symbol EXPORT_SYMBOL_GPL
#   
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# ChangeSet
#   2004/10/22 16:50:27-07:00 greg@kroah.com 
#   class simple: mark exports as EXPORT_SYMBOL_GPL as these are core kernel functions.
#   
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# drivers/base/class_simple.c
#   2004/10/22 16:50:14-07:00 greg@kroah.com +5 -5
#   class simple: mark exports as EXPORT_SYMBOL_GPL as these are core kernel functions.
#   
#   Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
# 
# ChangeSet
#   2004/10/21 14:19:34-07:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# lib/Makefile
#   2004/10/21 14:19:30-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/10/21 00:25:11-07:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# include/linux/module.h
#   2004/10/21 00:25:06-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/10/19 21:39:11-07:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-driver-core
# 
# kernel/Makefile
#   2004/10/19 21:39:07-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/linux/module.h
#   2004/10/19 21:39:07-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# drivers/usb/core/usb.c
#   2004/10/19 21:39:07-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/10/19 17:57:14-07:00 akpm@bix.(none) 
#   foo
# 
# kernel/Makefile
#   2004/10/19 17:57:07-07:00 akpm@bix.(none) +0 -1
#   foo
# 
# include/linux/module.h
#   2004/10/19 17:54:19-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# drivers/usb/core/usb.c
#   2004/10/19 17:54:19-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
diff -Nru a/drivers/base/class_simple.c b/drivers/base/class_simple.c
--- a/drivers/base/class_simple.c	2004-11-09 00:25:25 -08:00
+++ b/drivers/base/class_simple.c	2004-11-09 00:25:25 -08:00
@@ -91,7 +91,7 @@
 	kfree(cs);
 	return ERR_PTR(retval);
 }
-EXPORT_SYMBOL(class_simple_create);
+EXPORT_SYMBOL_GPL(class_simple_create);
 
 /**
  * class_simple_destroy - destroys a struct class_simple structure
@@ -107,7 +107,7 @@
 
 	class_unregister(&cs->class);
 }
-EXPORT_SYMBOL(class_simple_destroy);
+EXPORT_SYMBOL_GPL(class_simple_destroy);
 
 /**
  * class_simple_device_add - adds a class device to sysfs for a character driver
@@ -166,7 +166,7 @@
 	kfree(s_dev);
 	return ERR_PTR(retval);
 }
-EXPORT_SYMBOL(class_simple_device_add);
+EXPORT_SYMBOL_GPL(class_simple_device_add);
 
 /**
  * class_simple_set_hotplug - set the hotplug callback in the embedded struct class
@@ -184,7 +184,7 @@
 	cs->class.hotplug = hotplug;
 	return 0;
 }
-EXPORT_SYMBOL(class_simple_set_hotplug);
+EXPORT_SYMBOL_GPL(class_simple_set_hotplug);
 
 /**
  * class_simple_device_remove - removes a class device that was created with class_simple_device_add()
@@ -213,4 +213,4 @@
 		spin_unlock(&simple_dev_list_lock);
 	}
 }
-EXPORT_SYMBOL(class_simple_device_remove);
+EXPORT_SYMBOL_GPL(class_simple_device_remove);
diff -Nru a/drivers/base/cpu.c b/drivers/base/cpu.c
--- a/drivers/base/cpu.c	2004-11-09 00:25:25 -08:00
+++ b/drivers/base/cpu.c	2004-11-09 00:25:25 -08:00
@@ -13,7 +13,7 @@
 struct sysdev_class cpu_sysdev_class = {
 	set_kset_name("cpu"),
 };
-EXPORT_SYMBOL(cpu_sysdev_class);
+EXPORT_SYMBOL_GPL(cpu_sysdev_class);
 
 #ifdef CONFIG_HOTPLUG_CPU
 static ssize_t show_online(struct sys_device *dev, char *buf)
