diff options
| -rw-r--r-- | dbus.patch | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/dbus.patch b/dbus.patch index 45e1fac10db1cd..01152d8f4c78ea 100644 --- a/dbus.patch +++ b/dbus.patch @@ -1,9 +1,9 @@ --- - drivers/char/Kconfig | 3 +++ - drivers/char/Makefile | 1 + - drivers/char/dbus.c | 32 ++++++++++++++++++++++++++++++++ - include/linux/dbus.h | 15 +++++++++++++++ - 4 files changed, 51 insertions(+) + drivers/char/Kconfig | 3 ++ + drivers/char/Makefile | 1 + drivers/char/dbus.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ + include/linux/dbus.h | 15 +++++++++++++ + 4 files changed, 76 insertions(+) --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig @@ -25,7 +25,7 @@ +obj-$(CONFIG_DBUS) += dbus.o --- /dev/null +++ b/drivers/char/dbus.c -@@ -0,0 +1,32 @@ +@@ -0,0 +1,57 @@ +/* + * dbus - in kernel dbus functionality + * @@ -44,18 +44,43 @@ +static DEFINE_MUTEX(minor_lock); +static DEFINE_IDR(minor_idr); + ++static int minor_get(void) ++{ ++ int minor = -ENOMEM; ++ int retval; ++ ++ mutex_lock(&minor_lock); ++ if (idr_pre_get(&minor_idr, GFP_KERNEL) == 0) ++ goto exit; ++ retval = idr_get_new(&minor_idr, NULL, &minor); ++ if (retval < 0) { ++ minor = retval; ++ if (retval == -EAGAIN) ++ minor = -ENOMEM; ++ } ++exit: ++ mutex_unlock(&minor_lock); ++ return minor; ++} ++ ++static void minor_free(int minor) ++{ ++ mutex_lock(&minor_lock); ++ idr_remove(&minor_idr, minor); ++ mutex_unlock(&minor_lock); ++} + -+static int init(void) ++static int dbus_init(void) +{ + return 0; +} + -+static void exit(void) ++static void dbus_exit(void) +{ +} + -+module_init(init); -+module_exit(exit); ++module_init(dbus_init); ++module_exit(dbus_exit); + +MODULE_LICENSE("GPLv2"); --- /dev/null |
