aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2005-11-12 21:10:31 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2005-11-12 21:10:31 -0800
commit91c239499985a4587917e90fd961fe0ad4b7356d (patch)
tree5250dc92b909897e6c620f63efd498a781f39e2b /driver
parent03b9a83684d6424fa71d1692d575369b5c9ab14c (diff)
downloadpatches-91c239499985a4587917e90fd961fe0ad4b7356d.tar.gz
add usb Changelog.old patch, and 5 uevent cleanup patches from Kay.
Diffstat (limited to 'driver')
-rw-r--r--driver/add-uevent_helper.patch71
-rw-r--r--driver/merge-hotplug-and-uevent.patch425
-rw-r--r--driver/move-pnpbios-usermod_helper.patch51
-rw-r--r--driver/remove-KOBJECT_UEVENT.patch289
-rw-r--r--driver/remove-mount-events.patch88
-rw-r--r--driver/speakup-core.patch114
6 files changed, 981 insertions, 57 deletions
diff --git a/driver/add-uevent_helper.patch b/driver/add-uevent_helper.patch
new file mode 100644
index 0000000000000..2d6e59f72c843
--- /dev/null
+++ b/driver/add-uevent_helper.patch
@@ -0,0 +1,71 @@
+diff-tree bf9558fd631a02723c6b154400645a7a17ccaa54 (from 48bd66a731b03e50de1cd4390597e889a48d7d57)
+Author: Kay Sievers <kay.sievers@suse.de>
+Date: Fri Nov 11 04:58:04 2005 +0100
+
+add uevent_helper control in /sys/kernel/
+
+This deprecates the /proc/sys/kernel/hotplug file, as all
+this stuff should be in /sys some day, right? :)
+In /sys/kernel/ we have now uevent_seqnum and uevent_helper.
+The seqnum is no longer used by udev, as the version for this
+kernel depends on netlink which events will never get
+out-of-order.
+
+Recent udev versions disable the /sbin/hotplug helper with
+an init script, cause it leads to OOM on big boxes by running
+hundreds of shells in parallel. It should be done now by:
+ echo "" > /sys/kernel/uevent_helper
+
+(Note that "-n" does not work, cause neighter proc nor sysfs
+support truncate().)
+
+Signed-off-by: Kay Sievers <kay.sievers@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+ kernel/ksysfs.c | 25 ++++++++++++++++++++++---
+ 1 file changed, 22 insertions(+), 3 deletions(-)
+
+--- gregkh-2.6.orig/kernel/ksysfs.c 2005-08-28 16:41:01.000000000 -0700
++++ gregkh-2.6/kernel/ksysfs.c 2005-11-12 20:58:39.000000000 -0800
+@@ -23,11 +23,29 @@
+ __ATTR(_name, 0644, _name##_show, _name##_store)
+
+ #ifdef CONFIG_HOTPLUG
+-static ssize_t hotplug_seqnum_show(struct subsystem *subsys, char *page)
++/* current uevent sequence number */
++static ssize_t uevent_seqnum_show(struct subsystem *subsys, char *page)
+ {
+ return sprintf(page, "%llu\n", (unsigned long long)hotplug_seqnum);
+ }
+-KERNEL_ATTR_RO(hotplug_seqnum);
++KERNEL_ATTR_RO(uevent_seqnum);
++
++/* uevent helper program, used during early boo */
++static ssize_t uevent_helper_show(struct subsystem *subsys, char *page)
++{
++ return sprintf(page, "%s\n", hotplug_path);
++}
++static ssize_t uevent_helper_store(struct subsystem *subsys, const char *page, size_t count)
++{
++ if (count+1 > HOTPLUG_PATH_LEN)
++ return -ENOENT;
++ memcpy(hotplug_path, page, count);
++ hotplug_path[count] = '\0';
++ if (count && hotplug_path[count-1] == '\n')
++ hotplug_path[count-1] = '\0';
++ return count;
++}
++KERNEL_ATTR_RW(uevent_helper);
+ #endif
+
+ #ifdef CONFIG_KEXEC
+@@ -45,7 +63,8 @@
+
+ static struct attribute * kernel_attrs[] = {
+ #ifdef CONFIG_HOTPLUG
+- &hotplug_seqnum_attr.attr,
++ &uevent_seqnum_attr.attr,
++ &uevent_helper_attr.attr,
+ #endif
+ #ifdef CONFIG_KEXEC
+ &crash_notes_attr.attr,
diff --git a/driver/merge-hotplug-and-uevent.patch b/driver/merge-hotplug-and-uevent.patch
new file mode 100644
index 0000000000000..e00f80d3d0b5e
--- /dev/null
+++ b/driver/merge-hotplug-and-uevent.patch
@@ -0,0 +1,425 @@
+diff-tree 20b725254d8afa5e167e17df73a653fb8b8211e6 (from 6ff0b7d6d7ef2da3a03c24d936aa3812f33f148a)
+Author: Kay Sievers <kay.sievers@suse.de>
+Date: Fri Nov 11 14:43:07 2005 +0100
+
+merge kobject_uevent and kobject_hotplug
+
+The distinction between hotplug and uevent does not make sense these
+days, netlink events are the default.
+
+udev depends entirely on netlink uevents these days. Only during
+early boot and in initramfs /sbin/hotplug is needed. So merge the
+two functions and provide only one interface.
+
+The netlink layer got a nice generic interface with named slots
+recently, which are a better facility to plug events for individual
+subsystems.
+
+Signed-off-by: Kay Sievers <kay.sievers@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+ drivers/scsi/ipr.c | 2
+ include/linux/kobject.h | 27 +---
+ lib/kobject_uevent.c | 264 +++++++++++++++---------------------------------
+ 3 files changed, 92 insertions(+), 201 deletions(-)
+
+--- gregkh-2.6.orig/drivers/scsi/ipr.c 2005-11-11 22:48:24.000000000 -0800
++++ gregkh-2.6/drivers/scsi/ipr.c 2005-11-12 20:58:44.000000000 -0800
+@@ -2132,7 +2132,7 @@
+ }
+
+ spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
+- kobject_uevent(&ioa_cfg->host->shost_classdev.kobj, KOBJ_CHANGE, NULL);
++ kobject_hotplug(&ioa_cfg->host->shost_classdev.kobj, KOBJ_CHANGE);
+ LEAVE;
+ }
+
+--- gregkh-2.6.orig/include/linux/kobject.h 2005-11-12 20:58:43.000000000 -0800
++++ gregkh-2.6/include/linux/kobject.h 2005-11-12 20:58:44.000000000 -0800
+@@ -39,11 +39,11 @@
+ /* the actions here must match the proper string in lib/kobject_uevent.c */
+ typedef int __bitwise kobject_action_t;
+ enum kobject_action {
+- KOBJ_ADD = (__force kobject_action_t) 0x01, /* add event, for hotplug */
+- KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* remove event, for hotplug */
+- KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* a sysfs attribute file has changed */
+- KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* offline event for hotplug devices */
+- KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* online event for hotplug devices */
++ KOBJ_ADD = (__force kobject_action_t) 0x01, /* exclusive to core */
++ KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* exclusive to core */
++ KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* device state change */
++ KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* device offline */
++ KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* device online */
+ };
+
+ struct kobject {
+@@ -262,28 +262,13 @@
+ char *buffer, int buffer_size, int *cur_len,
+ const char *format, ...)
+ __attribute__((format (printf, 7, 8)));
+-
+-int kobject_uevent(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr);
+-int kobject_uevent_atomic(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr);
+-
+ #else
+ static inline void kobject_hotplug(struct kobject *kobj, enum kobject_action action) { }
++
+ static inline int add_hotplug_env_var(char **envp, int num_envp, int *cur_index,
+ char *buffer, int buffer_size, int *cur_len,
+ const char *format, ...)
+ { return 0; }
+-int kobject_uevent(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr)
+-{ return 0; }
+-int kobject_uevent_atomic(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr)
+-{ return 0; }
+ #endif
+
+ #endif /* __KERNEL__ */
+--- gregkh-2.6.orig/lib/kobject_uevent.c 2005-11-12 20:58:43.000000000 -0800
++++ gregkh-2.6/lib/kobject_uevent.c 2005-11-12 20:58:44.000000000 -0800
+@@ -29,6 +29,7 @@
+ char hotplug_path[HOTPLUG_PATH_LEN] = "/sbin/hotplug";
+ u64 hotplug_seqnum;
+ static DEFINE_SPINLOCK(sequence_lock);
++static struct sock *uevent_sock;
+
+ static char *action_to_string(enum kobject_action action)
+ {
+@@ -48,123 +49,6 @@
+ }
+ }
+
+-static struct sock *uevent_sock;
+-
+-/**
+- * send_uevent - notify userspace by sending event through netlink socket
+- *
+- * @signal: signal name
+- * @obj: object path (kobject)
+- * @envp: possible hotplug environment to pass with the message
+- * @gfp_mask:
+- */
+-static int send_uevent(const char *signal, const char *obj,
+- char **envp, gfp_t gfp_mask)
+-{
+- struct sk_buff *skb;
+- char *pos;
+- int len;
+-
+- if (!uevent_sock)
+- return -EIO;
+-
+- len = strlen(signal) + 1;
+- len += strlen(obj) + 1;
+-
+- /* allocate buffer with the maximum possible message size */
+- skb = alloc_skb(len + BUFFER_SIZE, gfp_mask);
+- if (!skb)
+- return -ENOMEM;
+-
+- pos = skb_put(skb, len);
+- sprintf(pos, "%s@%s", signal, obj);
+-
+- /* copy the environment key by key to our continuous buffer */
+- if (envp) {
+- int i;
+-
+- for (i = 2; envp[i]; i++) {
+- len = strlen(envp[i]) + 1;
+- pos = skb_put(skb, len);
+- strcpy(pos, envp[i]);
+- }
+- }
+-
+- NETLINK_CB(skb).dst_group = 1;
+- return netlink_broadcast(uevent_sock, skb, 0, 1, gfp_mask);
+-}
+-
+-static int do_kobject_uevent(struct kobject *kobj, enum kobject_action action,
+- struct attribute *attr, gfp_t gfp_mask)
+-{
+- char *path;
+- char *attrpath;
+- char *signal;
+- int len;
+- int rc = -ENOMEM;
+-
+- path = kobject_get_path(kobj, gfp_mask);
+- if (!path)
+- return -ENOMEM;
+-
+- signal = action_to_string(action);
+- if (!signal)
+- return -EINVAL;
+-
+- if (attr) {
+- len = strlen(path);
+- len += strlen(attr->name) + 2;
+- attrpath = kmalloc(len, gfp_mask);
+- if (!attrpath)
+- goto exit;
+- sprintf(attrpath, "%s/%s", path, attr->name);
+- rc = send_uevent(signal, attrpath, NULL, gfp_mask);
+- kfree(attrpath);
+- } else
+- rc = send_uevent(signal, path, NULL, gfp_mask);
+-
+-exit:
+- kfree(path);
+- return rc;
+-}
+-
+-/**
+- * kobject_uevent - notify userspace by sending event through netlink socket
+- *
+- * @signal: signal name
+- * @kobj: struct kobject that the event is happening to
+- * @attr: optional struct attribute the event belongs to
+- */
+-int kobject_uevent(struct kobject *kobj, enum kobject_action action,
+- struct attribute *attr)
+-{
+- return do_kobject_uevent(kobj, action, attr, GFP_KERNEL);
+-}
+-EXPORT_SYMBOL_GPL(kobject_uevent);
+-
+-int kobject_uevent_atomic(struct kobject *kobj, enum kobject_action action,
+- struct attribute *attr)
+-{
+- return do_kobject_uevent(kobj, action, attr, GFP_ATOMIC);
+-}
+-EXPORT_SYMBOL_GPL(kobject_uevent_atomic);
+-
+-static int __init kobject_uevent_init(void)
+-{
+- uevent_sock = netlink_kernel_create(NETLINK_KOBJECT_UEVENT, 1, NULL,
+- THIS_MODULE);
+-
+- if (!uevent_sock) {
+- printk(KERN_ERR
+- "kobject_uevent: unable to create netlink socket!\n");
+- return -ENODEV;
+- }
+-
+- return 0;
+-}
+-
+-postcore_initcall(kobject_uevent_init);
+-
+ /**
+ * kobject_hotplug - notify userspace by executing /sbin/hotplug
+ *
+@@ -180,88 +64,80 @@
+ char *scratch;
+ int i = 0;
+ int retval;
+- char *kobj_path = NULL;
+- const char *name = NULL;
++ size_t len;
++ char *devpath = NULL;
++ const char *subsystem = NULL;
+ char *action_string;
+ u64 seq;
+- struct kobject *top_kobj = kobj;
+- struct kset *kset;
+- static struct kset_hotplug_ops null_hotplug_ops;
+- struct kset_hotplug_ops *hotplug_ops = &null_hotplug_ops;
++ struct kobject *top_kobj;
++ struct kset *kset = NULL;
++ struct kset_hotplug_ops *hotplug_ops = NULL;
++ struct sk_buff *skb;
++
++ pr_debug("%s\n", __FUNCTION__);
+
+- /* If this kobj does not belong to a kset,
+- try to find a parent that does. */
++ action_string = action_to_string(action);
++ if (!action_string)
++ return;
++
++ /* search the kset we belong to */
++ top_kobj = kobj;
+ if (!top_kobj->kset && top_kobj->parent) {
+ do {
+ top_kobj = top_kobj->parent;
+ } while (!top_kobj->kset && top_kobj->parent);
+ }
+-
+- if (top_kobj->kset)
++ if (top_kobj->kset) {
+ kset = top_kobj->kset;
+- else
+- return;
+-
+- if (kset->hotplug_ops)
+ hotplug_ops = kset->hotplug_ops;
++ } else
++ return;
+
+- /* If the kset has a filter operation, call it.
+- Skip the event, if the filter returns zero. */
+- if (hotplug_ops->filter) {
++ /* skip the event, if the filter returns zero. */
++ if (hotplug_ops && hotplug_ops->filter)
+ if (!hotplug_ops->filter(kset, kobj))
+ return;
+- }
+
+- pr_debug ("%s\n", __FUNCTION__);
+-
+- action_string = action_to_string(action);
+- if (!action_string)
+- return;
+-
+- envp = kmalloc(NUM_ENVP * sizeof (char *), GFP_KERNEL);
++ /* environment index */
++ envp = kzalloc(NUM_ENVP * sizeof (char *), GFP_KERNEL);
+ if (!envp)
+ return;
+- memset (envp, 0x00, NUM_ENVP * sizeof (char *));
+
++ /* environment values */
+ buffer = kmalloc(BUFFER_SIZE, GFP_KERNEL);
+ if (!buffer)
+ goto exit;
+
+- if (hotplug_ops->name)
+- name = hotplug_ops->name(kset, kobj);
+- if (name == NULL)
+- name = kobject_name(&kset->kobj);
+-
+- argv [0] = hotplug_path;
+- argv [1] = (char *)name; /* won't be changed but 'const' has to go */
+- argv [2] = NULL;
+-
+- /* minimal command environment */
+- envp [i++] = "HOME=/";
+- envp [i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
++ /* complete object path */
++ devpath = kobject_get_path(kobj, GFP_KERNEL);
++ if (!devpath)
++ goto exit;
++
++ /* originating subsystem */
++ if (hotplug_ops && hotplug_ops->name)
++ subsystem = hotplug_ops->name(kset, kobj);
++ if (!subsystem)
++ subsystem = kobject_name(&kset->kobj);
++
++ /* event environemnt for helper process only */
++ envp[i++] = "HOME=/";
++ envp[i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
+
++ /* default keys */
+ scratch = buffer;
+-
+ envp [i++] = scratch;
+ scratch += sprintf(scratch, "ACTION=%s", action_string) + 1;
+-
+- kobj_path = kobject_get_path(kobj, GFP_KERNEL);
+- if (!kobj_path)
+- goto exit;
+-
+ envp [i++] = scratch;
+- scratch += sprintf (scratch, "DEVPATH=%s", kobj_path) + 1;
+-
++ scratch += sprintf (scratch, "DEVPATH=%s", devpath) + 1;
+ envp [i++] = scratch;
+- scratch += sprintf(scratch, "SUBSYSTEM=%s", name) + 1;
++ scratch += sprintf(scratch, "SUBSYSTEM=%s", subsystem) + 1;
+
+- /* reserve space for the sequence,
+- * put the real one in after the hotplug call */
++ /* just reserve the space, overwrite it after kset call has returned */
+ envp[i++] = seq_buff = scratch;
+ scratch += strlen("SEQNUM=18446744073709551616") + 1;
+
+- if (hotplug_ops->hotplug) {
+- /* have the kset specific function add its stuff */
++ /* let the kset specific function add its stuff */
++ if (hotplug_ops && hotplug_ops->hotplug) {
+ retval = hotplug_ops->hotplug (kset, kobj,
+ &envp[i], NUM_ENVP - i, scratch,
+ BUFFER_SIZE - (scratch - buffer));
+@@ -272,27 +148,41 @@
+ }
+ }
+
++ /* we will send an event, request a new sequence number */
+ spin_lock(&sequence_lock);
+ seq = ++hotplug_seqnum;
+ spin_unlock(&sequence_lock);
+ sprintf(seq_buff, "SEQNUM=%llu", (unsigned long long)seq);
+
+- pr_debug ("%s: %s %s seq=%llu %s %s %s %s %s\n",
+- __FUNCTION__, argv[0], argv[1], (unsigned long long)seq,
+- envp[0], envp[1], envp[2], envp[3], envp[4]);
++ /* allocate netlink message with the maximum possible size */
++ len = strlen(action_string) + strlen(devpath) + 2;
++ skb = alloc_skb(len + BUFFER_SIZE, GFP_KERNEL);
++ if (skb) {
++ /* add header */
++ scratch = skb_put(skb, len);
++ sprintf(scratch, "%s@%s", action_string, devpath);
+
+- send_uevent(action_string, kobj_path, envp, GFP_KERNEL);
++ /* copy all keys to our continuous event payload buffer */
++ for (i = 2; envp[i]; i++) {
++ len = strlen(envp[i]) + 1;
++ scratch = skb_put(skb, len);
++ strcpy(scratch, envp[i]);
++ }
+
+- if (!hotplug_path[0])
+- goto exit;
++ NETLINK_CB(skb).dst_group = 1;
++ netlink_broadcast(uevent_sock, skb, 0, 1, GFP_KERNEL);
++ }
+
+- retval = call_usermodehelper (argv[0], argv, envp, 0);
+- if (retval)
+- pr_debug ("%s - call_usermodehelper returned %d\n",
+- __FUNCTION__, retval);
++ /* call uevent_helper, usually only enabled during early boot */
++ if (hotplug_path[0]) {
++ argv [0] = hotplug_path;
++ argv [1] = (char *)subsystem;
++ argv [2] = NULL;
++ call_usermodehelper (argv[0], argv, envp, 0);
++ }
+
+ exit:
+- kfree(kobj_path);
++ kfree(devpath);
+ kfree(buffer);
+ kfree(envp);
+ return;
+@@ -350,4 +240,20 @@
+ }
+ EXPORT_SYMBOL(add_hotplug_env_var);
+
++static int __init kobject_uevent_init(void)
++{
++ uevent_sock = netlink_kernel_create(NETLINK_KOBJECT_UEVENT, 1, NULL,
++ THIS_MODULE);
++
++ if (!uevent_sock) {
++ printk(KERN_ERR
++ "kobject_uevent: unable to create netlink socket!\n");
++ return -ENODEV;
++ }
++
++ return 0;
++}
++
++postcore_initcall(kobject_uevent_init);
++
+ #endif /* CONFIG_HOTPLUG */
diff --git a/driver/move-pnpbios-usermod_helper.patch b/driver/move-pnpbios-usermod_helper.patch
new file mode 100644
index 0000000000000..55fe4329dca3a
--- /dev/null
+++ b/driver/move-pnpbios-usermod_helper.patch
@@ -0,0 +1,51 @@
+diff-tree 1939c18b67e60ded9e4151bca6bfe89a5b5d2d60 (from 6e6ece5dc6022e8086c565498d23511bbceda811)
+Author: Kay Sievers <kay.sievers@suse.de>
+Date: Fri Nov 11 04:25:06 2005 +0100
+
+keep pnpbios usermod_helper away from hotplug_path[]
+
+These days we use udev to manage all kernel events. /proc/sys/kernel/hotplug
+will usually be disabled by an init-script. pnpnbios is not integrated with
+the driver core and should stay away from the now disabled /sbin/hotplug.
+
+Set the helper to /sbin/phpbios, even when there is probably no current
+user of this faciliy. If it's needed, it should definitely get proper driver
+core integration instead of forking binaries from the kernel.
+
+Signed-off-by: Kay Sievers <kay.sievers@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+ drivers/pnp/pnpbios/core.c | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+--- gregkh-2.6.orig/drivers/pnp/pnpbios/core.c 2005-11-03 23:40:47.000000000 -0800
++++ gregkh-2.6/drivers/pnp/pnpbios/core.c 2005-11-12 20:58:31.000000000 -0800
+@@ -56,7 +56,6 @@
+ #include <linux/mm.h>
+ #include <linux/smp.h>
+ #include <linux/slab.h>
+-#include <linux/kobject_uevent.h>
+ #include <linux/completion.h>
+ #include <linux/spinlock.h>
+ #include <linux/dmi.h>
+@@ -106,8 +105,6 @@
+ char *argv [3], **envp, *buf, *scratch;
+ int i = 0, value;
+
+- if (!hotplug_path [0])
+- return -ENOENT;
+ if (!current->fs->root) {
+ return -EAGAIN;
+ }
+@@ -119,8 +116,9 @@
+ return -ENOMEM;
+ }
+
+- /* only one standardized param to hotplug command: type */
+- argv [0] = hotplug_path;
++ /* FIXME: if there are actual users of this, it should be integrated into
++ * the driver core and use the usual infrastructure like sysfs and uevents */
++ argv [0] = "/sbin/pnpbios";
+ argv [1] = "dock";
+ argv [2] = NULL;
+
diff --git a/driver/remove-KOBJECT_UEVENT.patch b/driver/remove-KOBJECT_UEVENT.patch
new file mode 100644
index 0000000000000..a7aa031481664
--- /dev/null
+++ b/driver/remove-KOBJECT_UEVENT.patch
@@ -0,0 +1,289 @@
+diff-tree cf1b7672a58bb17ea9b1fcdcf5df554099b3a31d (from bf9558fd631a02723c6b154400645a7a17ccaa54)
+Author: Kay Sievers <kay.sievers@suse.de>
+Date: Fri Nov 11 05:33:52 2005 +0100
+
+remove CONFIG_KOBJECT_UEVENT option
+
+It makes zero sense to have hotplug, but not the netlink
+events enabled today. Remove this option and merge the
+kobject_uevent.h header into the kobject.h header file.
+
+Signed-off-by: Kay Sievers <kay.sievers@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+ MAINTAINERS | 6 ----
+ drivers/input/input.c | 1
+ drivers/s390/crypto/z90main.c | 1
+ include/linux/kobject.h | 35 ++++++++++++++++++++++++-
+ include/linux/kobject_uevent.h | 57 -----------------------------------------
+ init/Kconfig | 19 -------------
+ kernel/sysctl.c | 4 --
+ lib/kobject_uevent.c | 24 +++--------------
+ 8 files changed, 40 insertions(+), 107 deletions(-)
+
+--- gregkh-2.6.orig/MAINTAINERS 2005-11-12 20:19:31.000000000 -0800
++++ gregkh-2.6/MAINTAINERS 2005-11-12 20:58:35.000000000 -0800
+@@ -1454,12 +1454,6 @@
+ W: http://www.cse.unsw.edu.au/~neilb/patches/linux-devel/
+ S: Maintained
+
+-KERNEL EVENT LAYER (KOBJECT_UEVENT)
+-P: Robert Love
+-M: rml@novell.com
+-L: linux-kernel@vger.kernel.org
+-S: Maintained
+-
+ KEXEC
+ P: Eric Biederman
+ P: Randy Dunlap
+--- gregkh-2.6.orig/drivers/input/input.c 2005-11-11 22:48:17.000000000 -0800
++++ gregkh-2.6/drivers/input/input.c 2005-11-12 20:58:35.000000000 -0800
+@@ -18,7 +18,6 @@
+ #include <linux/random.h>
+ #include <linux/major.h>
+ #include <linux/proc_fs.h>
+-#include <linux/kobject_uevent.h>
+ #include <linux/interrupt.h>
+ #include <linux/poll.h>
+ #include <linux/device.h>
+--- gregkh-2.6.orig/drivers/s390/crypto/z90main.c 2005-11-12 20:19:48.000000000 -0800
++++ gregkh-2.6/drivers/s390/crypto/z90main.c 2005-11-12 20:58:35.000000000 -0800
+@@ -34,7 +34,6 @@
+ #include <linux/miscdevice.h>
+ #include <linux/module.h>
+ #include <linux/moduleparam.h>
+-#include <linux/kobject_uevent.h>
+ #include <linux/proc_fs.h>
+ #include <linux/syscalls.h>
+ #include "z90crypt.h"
+--- gregkh-2.6.orig/include/linux/kobject.h 2005-11-11 22:48:35.000000000 -0800
++++ gregkh-2.6/include/linux/kobject.h 2005-11-12 20:58:35.000000000 -0800
+@@ -23,15 +23,31 @@
+ #include <linux/spinlock.h>
+ #include <linux/rwsem.h>
+ #include <linux/kref.h>
+-#include <linux/kobject_uevent.h>
+ #include <linux/kernel.h>
+ #include <asm/atomic.h>
+
+ #define KOBJ_NAME_LEN 20
+
++#define HOTPLUG_PATH_LEN 256
++
++/* path to the userspace helper executed on an event */
++extern char hotplug_path[];
++
+ /* counter to tag the hotplug event, read only except for the kobject core */
+ extern u64 hotplug_seqnum;
+
++/* the actions here must match the proper string in lib/kobject_uevent.c */
++typedef int __bitwise kobject_action_t;
++enum kobject_action {
++ KOBJ_ADD = (__force kobject_action_t) 0x01, /* add event, for hotplug */
++ KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* remove event, for hotplug */
++ KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* a sysfs attribute file has changed */
++ KOBJ_MOUNT = (__force kobject_action_t) 0x04, /* mount event for block devices */
++ KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices */
++ KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* offline event for hotplug devices */
++ KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* online event for hotplug devices */
++};
++
+ struct kobject {
+ const char * k_name;
+ char name[KOBJ_NAME_LEN];
+@@ -243,16 +259,33 @@
+
+ #ifdef CONFIG_HOTPLUG
+ void kobject_hotplug(struct kobject *kobj, enum kobject_action action);
++
+ int add_hotplug_env_var(char **envp, int num_envp, int *cur_index,
+ char *buffer, int buffer_size, int *cur_len,
+ const char *format, ...)
+ __attribute__((format (printf, 7, 8)));
++
++int kobject_uevent(struct kobject *kobj,
++ enum kobject_action action,
++ struct attribute *attr);
++int kobject_uevent_atomic(struct kobject *kobj,
++ enum kobject_action action,
++ struct attribute *attr);
++
+ #else
+ static inline void kobject_hotplug(struct kobject *kobj, enum kobject_action action) { }
+ static inline int add_hotplug_env_var(char **envp, int num_envp, int *cur_index,
+ char *buffer, int buffer_size, int *cur_len,
+ const char *format, ...)
+ { return 0; }
++int kobject_uevent(struct kobject *kobj,
++ enum kobject_action action,
++ struct attribute *attr)
++{ return 0; }
++int kobject_uevent_atomic(struct kobject *kobj,
++ enum kobject_action action,
++ struct attribute *attr)
++{ return 0; }
+ #endif
+
+ #endif /* __KERNEL__ */
+--- gregkh-2.6.orig/include/linux/kobject_uevent.h 2005-08-28 16:41:01.000000000 -0700
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,57 +0,0 @@
+-/*
+- * kobject_uevent.h - list of kobject user events that can be generated
+- *
+- * Copyright (C) 2004 IBM Corp.
+- * Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
+- *
+- * This file is released under the GPLv2.
+- *
+- */
+-
+-#ifndef _KOBJECT_EVENT_H_
+-#define _KOBJECT_EVENT_H_
+-
+-#define HOTPLUG_PATH_LEN 256
+-
+-/* path to the hotplug userspace helper executed on an event */
+-extern char hotplug_path[];
+-
+-/*
+- * If you add an action here, you must also add the proper string to the
+- * lib/kobject_uevent.c file.
+- */
+-typedef int __bitwise kobject_action_t;
+-enum kobject_action {
+- KOBJ_ADD = (__force kobject_action_t) 0x01, /* add event, for hotplug */
+- KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* remove event, for hotplug */
+- KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* a sysfs attribute file has changed */
+- KOBJ_MOUNT = (__force kobject_action_t) 0x04, /* mount event for block devices */
+- KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices */
+- KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* offline event for hotplug devices */
+- KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* online event for hotplug devices */
+-};
+-
+-
+-#ifdef CONFIG_KOBJECT_UEVENT
+-int kobject_uevent(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr);
+-int kobject_uevent_atomic(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr);
+-#else
+-static inline int kobject_uevent(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr)
+-{
+- return 0;
+-}
+-static inline int kobject_uevent_atomic(struct kobject *kobj,
+- enum kobject_action action,
+- struct attribute *attr)
+-{
+- return 0;
+-}
+-#endif
+-
+-#endif
+--- gregkh-2.6.orig/init/Kconfig 2005-11-11 22:48:36.000000000 -0800
++++ gregkh-2.6/init/Kconfig 2005-11-12 20:58:35.000000000 -0800
+@@ -205,25 +205,6 @@
+ modules require HOTPLUG functionality, but a module built
+ outside the kernel tree does. Such modules require Y here.
+
+-config KOBJECT_UEVENT
+- bool "Kernel Userspace Events"
+- depends on NET
+- default y
+- help
+- This option enables the kernel userspace event layer, which is a
+- simple mechanism for kernel-to-user communication over a netlink
+- socket.
+- The goal of the kernel userspace events layer is to provide a simple
+- and efficient events system, that notifies userspace about kobject
+- state changes. This will enable applications to just listen for
+- events instead of polling system devices and files.
+- Hotplug events (kobject addition and removal) are also available on
+- the netlink socket in addition to the execution of /sbin/hotplug if
+- CONFIG_HOTPLUG is enabled.
+-
+- Say Y, unless you are building a system requiring minimal memory
+- consumption.
+-
+ config IKCONFIG
+ bool "Kernel .config support"
+ ---help---
+--- gregkh-2.6.orig/kernel/sysctl.c 2005-11-12 20:19:02.000000000 -0800
++++ gregkh-2.6/kernel/sysctl.c 2005-11-12 20:58:35.000000000 -0800
+@@ -31,6 +31,7 @@
+ #include <linux/smp_lock.h>
+ #include <linux/init.h>
+ #include <linux/kernel.h>
++#include <linux/kobject.h>
+ #include <linux/net.h>
+ #include <linux/sysrq.h>
+ #include <linux/highuid.h>
+@@ -83,9 +84,6 @@
+ #ifdef CONFIG_KMOD
+ extern char modprobe_path[];
+ #endif
+-#ifdef CONFIG_HOTPLUG
+-extern char hotplug_path[];
+-#endif
+ #ifdef CONFIG_CHR_DEV_SG
+ extern int sg_big_buff;
+ #endif
+--- gregkh-2.6.orig/lib/kobject_uevent.c 2005-11-11 22:48:36.000000000 -0800
++++ gregkh-2.6/lib/kobject_uevent.c 2005-11-12 20:58:35.000000000 -0800
+@@ -19,14 +19,17 @@
+ #include <linux/skbuff.h>
+ #include <linux/netlink.h>
+ #include <linux/string.h>
+-#include <linux/kobject_uevent.h>
+ #include <linux/kobject.h>
+ #include <net/sock.h>
+
+ #define BUFFER_SIZE 1024 /* buffer for the hotplug env */
+ #define NUM_ENVP 32 /* number of env pointers */
+
+-#if defined(CONFIG_KOBJECT_UEVENT) || defined(CONFIG_HOTPLUG)
++#if defined(CONFIG_HOTPLUG)
++char hotplug_path[HOTPLUG_PATH_LEN] = "/sbin/hotplug";
++u64 hotplug_seqnum;
++static DEFINE_SPINLOCK(sequence_lock);
++
+ static char *action_to_string(enum kobject_action action)
+ {
+ switch (action) {
+@@ -48,9 +51,7 @@
+ return NULL;
+ }
+ }
+-#endif
+
+-#ifdef CONFIG_KOBJECT_UEVENT
+ static struct sock *uevent_sock;
+
+ /**
+@@ -168,21 +169,6 @@
+
+ postcore_initcall(kobject_uevent_init);
+
+-#else
+-static inline int send_uevent(const char *signal, const char *obj,
+- char **envp, int gfp_mask)
+-{
+- return 0;
+-}
+-
+-#endif /* CONFIG_KOBJECT_UEVENT */
+-
+-
+-#ifdef CONFIG_HOTPLUG
+-char hotplug_path[HOTPLUG_PATH_LEN] = "/sbin/hotplug";
+-u64 hotplug_seqnum;
+-static DEFINE_SPINLOCK(sequence_lock);
+-
+ /**
+ * kobject_hotplug - notify userspace by executing /sbin/hotplug
+ *
diff --git a/driver/remove-mount-events.patch b/driver/remove-mount-events.patch
new file mode 100644
index 0000000000000..b3c2283053b08
--- /dev/null
+++ b/driver/remove-mount-events.patch
@@ -0,0 +1,88 @@
+diff-tree 8fd2fada90130036d411467e047a42f4cdf0fb08 (from cf1b7672a58bb17ea9b1fcdcf5df554099b3a31d)
+Author: Kay Sievers <kay.sievers@suse.de>
+Date: Fri Nov 11 06:09:55 2005 +0100
+
+remove mount/umount uevents from superblock handling
+
+The names of these events have been confusing from the beginning
+on, as they have been more like claim/release events. We needed these
+events for noticing HAL if storage devices have been mounted.
+
+Thanks to Al, we have the proper solution now and can poll()
+/proc/mounts instead to get notfied about mount tree changes.
+
+Signed-off-by: Kay Sievers <kay.sievers@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+ fs/super.c | 15 +--------------
+ include/linux/kobject.h | 6 ++----
+ lib/kobject_uevent.c | 4 ----
+ 3 files changed, 3 insertions(+), 22 deletions(-)
+
+--- gregkh-2.6.orig/fs/super.c 2005-11-11 22:48:30.000000000 -0800
++++ gregkh-2.6/fs/super.c 2005-11-12 20:58:41.000000000 -0800
+@@ -665,16 +665,6 @@
+ return (void *)s->s_bdev == data;
+ }
+
+-static void bdev_uevent(struct block_device *bdev, enum kobject_action action)
+-{
+- if (bdev->bd_disk) {
+- if (bdev->bd_part)
+- kobject_uevent(&bdev->bd_part->kobj, action, NULL);
+- else
+- kobject_uevent(&bdev->bd_disk->kobj, action, NULL);
+- }
+-}
+-
+ struct super_block *get_sb_bdev(struct file_system_type *fs_type,
+ int flags, const char *dev_name, void *data,
+ int (*fill_super)(struct super_block *, void *, int))
+@@ -717,10 +707,8 @@
+ up_write(&s->s_umount);
+ deactivate_super(s);
+ s = ERR_PTR(error);
+- } else {
++ } else
+ s->s_flags |= MS_ACTIVE;
+- bdev_uevent(bdev, KOBJ_MOUNT);
+- }
+ }
+
+ return s;
+@@ -736,7 +724,6 @@
+ {
+ struct block_device *bdev = sb->s_bdev;
+
+- bdev_uevent(bdev, KOBJ_UMOUNT);
+ generic_shutdown_super(sb);
+ sync_blockdev(bdev);
+ close_bdev_excl(bdev);
+--- gregkh-2.6.orig/include/linux/kobject.h 2005-11-12 20:58:38.000000000 -0800
++++ gregkh-2.6/include/linux/kobject.h 2005-11-12 20:58:41.000000000 -0800
+@@ -42,10 +42,8 @@
+ KOBJ_ADD = (__force kobject_action_t) 0x01, /* add event, for hotplug */
+ KOBJ_REMOVE = (__force kobject_action_t) 0x02, /* remove event, for hotplug */
+ KOBJ_CHANGE = (__force kobject_action_t) 0x03, /* a sysfs attribute file has changed */
+- KOBJ_MOUNT = (__force kobject_action_t) 0x04, /* mount event for block devices */
+- KOBJ_UMOUNT = (__force kobject_action_t) 0x05, /* umount event for block devices */
+- KOBJ_OFFLINE = (__force kobject_action_t) 0x06, /* offline event for hotplug devices */
+- KOBJ_ONLINE = (__force kobject_action_t) 0x07, /* online event for hotplug devices */
++ KOBJ_OFFLINE = (__force kobject_action_t) 0x04, /* offline event for hotplug devices */
++ KOBJ_ONLINE = (__force kobject_action_t) 0x05, /* online event for hotplug devices */
+ };
+
+ struct kobject {
+--- gregkh-2.6.orig/lib/kobject_uevent.c 2005-11-12 20:58:38.000000000 -0800
++++ gregkh-2.6/lib/kobject_uevent.c 2005-11-12 20:58:41.000000000 -0800
+@@ -39,10 +39,6 @@
+ return "remove";
+ case KOBJ_CHANGE:
+ return "change";
+- case KOBJ_MOUNT:
+- return "mount";
+- case KOBJ_UMOUNT:
+- return "umount";
+ case KOBJ_OFFLINE:
+ return "offline";
+ case KOBJ_ONLINE:
diff --git a/driver/speakup-core.patch b/driver/speakup-core.patch
index 0e77363e9050f..057bf14ebdac9 100644
--- a/driver/speakup-core.patch
+++ b/driver/speakup-core.patch
@@ -53,11 +53,11 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
47 files changed, 8701 insertions(+), 9 deletions(-)
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/cvsversion.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/cvsversion.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1 @@
+#define CVSVERSION " CVS: Wed Mar 2 20:22:02 EST 2005 "
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/dtload.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/dtload.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,554 @@
+/*
+ * This is the DECtalk PC firmware loader for the Linux kernel, version 1.0
@@ -614,7 +614,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ exit( 0 );
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/dtload.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/dtload.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,57 @@
+/*
+ * This is the DECtalk PC firmware loader for the Linux kernel, version 1.0
@@ -674,7 +674,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ short int offset, segment;
+};
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/dtpc_reg.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/dtpc_reg.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,132 @@
+/*
+ * This is the DECtalk PC register constants (from DEC's DOS driver)
@@ -809,7 +809,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#define DMA_sync 0x06
+#define DMA_sync_char 0x07
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/genmap.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/genmap.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,204 @@
+#include <stdlib.h>
+#include <stdio.h>
@@ -1016,7 +1016,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ exit( 0 );
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/Kconfig 2005-11-12 14:07:13.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/Kconfig 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,211 @@
+menu "Speakup console speech"
+config SPEAKUP
@@ -1230,7 +1230,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+endmenu
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/keyinfo.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/keyinfo.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,119 @@
+/* spk_priv.h
+ review functions for the speakup screen review package.
@@ -1352,7 +1352,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#define VOICE_DEC PUNCT_DEC+2
+#define VOICE_INC VOICE_DEC+1
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/Makefile 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/Makefile 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,36 @@
+#
+# Makefile for the speakup speech output system.
@@ -1391,7 +1391,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+HOSTCFLAGS := -Iinclude -I/usr/include
+hostprogs-y := makemapdata genmap
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/makemapdata.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/makemapdata.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,156 @@
+#include <stdlib.h>
+#include <stdio.h>
@@ -1550,7 +1550,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ exit( 0 );
+}
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/mapdata.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/mapdata.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,238 @@
+t_key_init init_key_data[] = {
+ "key_s", 31, -1,
@@ -1791,7 +1791,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ ".", 0, 0
+};
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/mod_code.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/mod_code.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,25 @@
+/* this code is to modularize a synth specific file, included at the end */
+
@@ -1819,7 +1819,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+MODULE_DESCRIPTION("Synthesizer driver module for speakup for the synth->long_name");
+MODULE_LICENSE( "GPL" );
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/serialio.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/serialio.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,18 @@
+#ifndef SSPK_SERIAL
+#define SSPK_SERIAL
@@ -1840,7 +1840,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_acnt.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_acnt.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,16 @@
+/* speakup_acntpc.h - header file for speakups Accent-PC driver. */
+
@@ -1859,7 +1859,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#define SYNTH_ALMOST_EMPTY 'M' /* synth has les than 2 seconds of text left */
+#define SYNTH_SPEAKING 's' /* synth is speaking and has a fare way to go */
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_acntpc.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_acntpc.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,160 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -2022,7 +2022,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_acntsa.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_acntsa.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,184 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -2209,7 +2209,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_apollo.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_apollo.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,195 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -2407,7 +2407,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_audptr.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_audptr.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,201 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -2611,7 +2611,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_bns.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_bns.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,174 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -2788,7 +2788,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,2281 @@
+/* speakup.c
+ review functions for the speakup screen review package.
@@ -5072,7 +5072,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakupconf 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakupconf 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,51 @@
+#!/bin/sh
+# script to load/save all the vars in speakup
@@ -5126,7 +5126,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+;;
+esac
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_decext.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_decext.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,205 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -5334,7 +5334,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_decpc.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_decpc.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,242 @@
+/*
+* written by David Borowski, david575@golden.net
@@ -5579,7 +5579,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_dectlk.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_dectlk.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,221 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -5803,7 +5803,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_drvcommon.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_drvcommon.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,879 @@
+#define KERNEL
+#include <linux/config.h>
@@ -6685,7 +6685,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+MODULE_DESCRIPTION("Speakup module required by all synthesizer specific modules");
+MODULE_LICENSE("GPL");
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_dtlk.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_dtlk.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,219 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -6907,7 +6907,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_dtlk.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_dtlk.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,54 @@
+/* speakup_dtlk.h - header file for speakups DoubleTalk driver. */
+
@@ -6964,7 +6964,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ u_char has_indexing; /* nonzero if indexing is implemented */
+};
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_keyhelp.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_keyhelp.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,294 @@
+/* speakup_keyhelp.c
+ help module for speakup
@@ -7261,7 +7261,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+MODULE_DESCRIPTION("Speakup keyboard help MODULE");
+MODULE_LICENSE("GPL");
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_keypc.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_keypc.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,189 @@
+/*
+* written by David Borowski
@@ -7453,7 +7453,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_ltlk.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_ltlk.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,215 @@
+/*
+ * originally written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -7671,7 +7671,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakupmap.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakupmap.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,64 @@
+ 119, 61, 6,
+ 0, 16, 17, 32, 20, 48, 0,
@@ -7738,7 +7738,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+ 125, 128, 128, 0, 0, 0, 0,
+ 0, 119
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakupmap.map 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakupmap.map 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,91 @@
+spk key_f9 = punc_level_dec
+spk key_f10 = punc_level_inc
@@ -7832,7 +7832,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+shift spk key_m = say_first_char
+ ctrl spk key_semicolon = say_last_char
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_sftsyn.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_sftsyn.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,175 @@
+/* speakup_sftsynth.c - speakup driver to register and make available
+ * a user space device for software synthesizers. written by: Kirk
@@ -8010,7 +8010,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_spkout.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_spkout.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,188 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -8201,7 +8201,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/speakup_txprt.c 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/speakup_txprt.c 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,195 @@
+/*
+ * originially written by: Kirk Reiser <kirk@braille.uwo.ca>
@@ -8399,7 +8399,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#include "mod_code.c"
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/spk_con_module.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/spk_con_module.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,43 @@
+/* written bby David Borowski.
+ Copyright (C ) 2003 David Borowski.
@@ -8445,7 +8445,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+EXPORT_SYMBOL(speakup_set_addresses);
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/spk_priv.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/spk_priv.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,258 @@
+/* spk_priv.h
+ review functions for the speakup screen review package.
@@ -8706,7 +8706,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+#endif
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/drivers/char/speakup/synthlist.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/drivers/char/speakup/synthlist.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,54 @@
+/* this is included two times */
+#if defined(PASS2)
@@ -8763,7 +8763,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+#undef SYNTH_DECL
+#undef CFG_TEST
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gregkh-2.6/include/linux/speakup.h 2005-11-12 13:59:49.000000000 -0800
++++ gregkh-2.6/include/linux/speakup.h 2005-11-12 21:06:34.000000000 -0800
@@ -0,0 +1,33 @@
+#ifndef __SPEAKUP_H
+#define __SPEAKUP_H
@@ -8798,8 +8798,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+static inline void speakup_init(struct vc_data *vc) { }
+#endif
+#endif
---- gregkh-2.6.orig/arch/arm/Kconfig 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/arch/arm/Kconfig 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/arch/arm/Kconfig 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/arch/arm/Kconfig 2005-11-12 21:06:34.000000000 -0800
@@ -753,6 +753,7 @@
source "drivers/media/Kconfig"
@@ -8808,15 +8808,15 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
source "sound/Kconfig"
---- gregkh-2.6.orig/drivers/char/consolemap.c 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/drivers/char/consolemap.c 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/drivers/char/consolemap.c 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/drivers/char/consolemap.c 2005-11-12 21:06:34.000000000 -0800
@@ -668,3 +668,4 @@
}
EXPORT_SYMBOL(con_copy_unimap);
+EXPORT_SYMBOL(inverse_translate);
---- gregkh-2.6.orig/drivers/char/keyboard.c 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/drivers/char/keyboard.c 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/drivers/char/keyboard.c 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/drivers/char/keyboard.c 2005-11-12 21:06:34.000000000 -0800
@@ -40,6 +40,13 @@
#include <linux/sysrq.h>
#include <linux/input.h>
@@ -8936,8 +8936,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
(*k_handler[type])(vc, keysym & 0xff, !down, regs);
if (type != KT_SLOCK)
---- gregkh-2.6.orig/drivers/char/Makefile 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/drivers/char/Makefile 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/drivers/char/Makefile 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/drivers/char/Makefile 2005-11-12 21:06:34.000000000 -0800
@@ -84,6 +84,7 @@
obj-$(CONFIG_TANBAC_TB0219) += tb0219.o
obj-$(CONFIG_TELCLOCK) += tlclk.o
@@ -8946,8 +8946,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
obj-$(CONFIG_WATCHDOG) += watchdog/
obj-$(CONFIG_MWAVE) += mwave/
obj-$(CONFIG_AGP) += agp/
---- gregkh-2.6.orig/drivers/char/vt.c 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/drivers/char/vt.c 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/drivers/char/vt.c 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/drivers/char/vt.c 2005-11-12 21:06:34.000000000 -0800
@@ -98,6 +98,10 @@
#include <asm/system.h>
#include <asm/uaccess.h>
@@ -9052,8 +9052,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
EXPORT_SYMBOL(give_up_console);
#endif
+EXPORT_SYMBOL(screen_glyph);
---- gregkh-2.6.orig/drivers/Kconfig 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/drivers/Kconfig 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/drivers/Kconfig 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/drivers/Kconfig 2005-11-12 21:06:34.000000000 -0800
@@ -56,6 +56,8 @@
source "drivers/video/Kconfig"
@@ -9063,8 +9063,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
source "sound/Kconfig"
source "drivers/usb/Kconfig"
---- gregkh-2.6.orig/drivers/Makefile 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/drivers/Makefile 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/drivers/Makefile 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/drivers/Makefile 2005-11-12 21:06:34.000000000 -0800
@@ -1,4 +1,3 @@
-#
# Makefile for the Linux kernel device drivers.
@@ -9087,8 +9087,8 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
obj-$(CONFIG_I2O) += message/
obj-$(CONFIG_I2C) += i2c/
obj-$(CONFIG_W1) += w1/
---- gregkh-2.6.orig/include/linux/keyboard.h 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/include/linux/keyboard.h 2005-11-12 13:59:49.000000000 -0800
+--- gregkh-2.6.orig/include/linux/keyboard.h 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/include/linux/keyboard.h 2005-11-12 21:06:34.000000000 -0800
@@ -44,6 +44,7 @@
#define KT_ASCII 9
#define KT_LOCK 10
@@ -9105,9 +9105,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
#define MAX_DIACR 256
#endif
---- gregkh-2.6.orig/MAINTAINERS 2005-11-12 13:59:47.000000000 -0800
-+++ gregkh-2.6/MAINTAINERS 2005-11-12 13:59:49.000000000 -0800
-@@ -2391,6 +2391,13 @@
+--- gregkh-2.6.orig/MAINTAINERS 2005-11-12 21:06:24.000000000 -0800
++++ gregkh-2.6/MAINTAINERS 2005-11-12 21:06:34.000000000 -0800
+@@ -2385,6 +2385,13 @@
L: sparclinux@vger.kernel.org
S: Maintained