aboutsummaryrefslogtreecommitdiffstats
diff options
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-07 13:40:17 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-06-07 13:40:17 -0700
commite621e9bafb7e0b28c80b323a0ff11465f4dda735 (patch)
treeb4f9ab0901bac8b50ef52d33d6e1dcacfba3be91
parent1f24a64d58f6807b118459f70a238a985ed6fb90 (diff)
downloadpatches-e621e9bafb7e0b28c80b323a0ff11465f4dda735.tar.gz
delete dbus patches and other ones that are now upstream
-rw-r--r--0001-kdbus-interprocess-message-router.patch1618
-rw-r--r--dbus.patch111
-rw-r--r--dev_removal.patch2677
-rw-r--r--series4
-rw-r--r--time-don-t-inline-export_symbol-functions.patch46
5 files changed, 0 insertions, 4456 deletions
diff --git a/0001-kdbus-interprocess-message-router.patch b/0001-kdbus-interprocess-message-router.patch
deleted file mode 100644
index c563642cdf968c..00000000000000
--- a/0001-kdbus-interprocess-message-router.patch
+++ /dev/null
@@ -1,1618 +0,0 @@
-Subject: kdbus: interprocess message router
-
-Nothing to see here, move along...
-
-
----
- drivers/Kconfig | 2
- drivers/Makefile | 1
- drivers/kdbus/Kconfig | 5
- drivers/kdbus/Makefile | 4
- drivers/kdbus/bus.c | 122 ++++++++
- drivers/kdbus/ep.c | 200 ++++++++++++++
- drivers/kdbus/kdbus.c | 611 +++++++++++++++++++++++++++++++++++++++++++++
- drivers/kdbus/kdbus.h | 185 +++++++++++++
- drivers/kdbus/ns.c | 217 +++++++++++++++
- include/uapi/kdbus/kdbus.h | 123 +++++++++
- include/uapi/linux/major.h | 2
- kdbus.c | 77 +++++
- 12 files changed, 1549 insertions(+)
-
---- a/drivers/Kconfig
-+++ b/drivers/Kconfig
-@@ -158,4 +158,6 @@ source "drivers/irqchip/Kconfig"
-
- source "drivers/ipack/Kconfig"
-
-+source "drivers/kdbus/Kconfig"
-+
- endmenu
---- a/drivers/Makefile
-+++ b/drivers/Makefile
-@@ -146,3 +146,4 @@ obj-$(CONFIG_MEMORY) += memory/
- obj-$(CONFIG_IIO) += iio/
- obj-$(CONFIG_VME_BUS) += vme/
- obj-$(CONFIG_IPACK_BUS) += ipack/
-+obj-$(CONFIG_KDBUS) += kdbus/
---- /dev/null
-+++ b/drivers/kdbus/Kconfig
-@@ -0,0 +1,5 @@
-+config KDBUS
-+ tristate "kdbus interprocess message router"
-+ help
-+ kdbus provides efficient kernel-aided message exchange and routing
-+ between processes. It is used as the low-level transport of D-Bus.
---- /dev/null
-+++ b/drivers/kdbus/Makefile
-@@ -0,0 +1,4 @@
-+dbus-y := kdbus.o ep.o bus.o ns.o
-+
-+obj-$(CONFIG_KDBUS) += dbus.o
-+
---- /dev/null
-+++ b/drivers/kdbus/bus.c
-@@ -0,0 +1,122 @@
-+/*
-+ * Copyright (C) 2013 Kay Sievers
-+ * Copyright (C) 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2013 Linux Foundation
-+ *
-+ * kdbus is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License as published by the
-+ * Free Software Foundation; either version 2.1 of the License, or (at
-+ * your option) any later version.
-+ *
-+ */
-+
-+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+
-+#include <linux/module.h>
-+#include <linux/device.h>
-+#include <linux/idr.h>
-+#include <linux/fs.h>
-+#include <linux/slab.h>
-+#include <linux/sched.h>
-+#include <linux/init.h>
-+#include <uapi/kdbus/kdbus.h>
-+
-+#include "kdbus.h"
-+
-+void kdbus_release(struct device *dev)
-+{
-+ kfree(dev);
-+}
-+
-+
-+struct kdbus_bus *kdbus_bus_ref(struct kdbus_bus *bus)
-+{
-+ if (!bus)
-+ return NULL;
-+ bus->ref++;
-+ return bus;
-+}
-+
-+struct kdbus_bus *kdbus_bus_unref(struct kdbus_bus *bus)
-+{
-+ if (!bus)
-+ return NULL;
-+ bus->ref--;
-+ if (bus->ref > 0)
-+ return bus;
-+
-+ kdbus_bus_disconnect(bus);
-+ pr_info("clean up bus %s/%s\n",
-+ bus->ns->devpath, bus->name);
-+
-+ kfree(bus->name);
-+ kfree(bus);
-+ return NULL;
-+}
-+
-+void kdbus_bus_disconnect(struct kdbus_bus *bus)
-+{
-+ struct kdbus_ep *ep, *tmp;
-+
-+ if (bus->disconnected)
-+ return;
-+ bus->disconnected = true;
-+
-+ /* remove default endpoint */
-+ kdbus_ep_disconnect(bus->ep);
-+ kdbus_ep_unref(bus->ep);
-+
-+ /* remove any endpoints attached to this bus */
-+ list_for_each_entry_safe(ep, tmp, &bus->ep_list, bus_entry) {
-+ kdbus_ep_disconnect(ep);
-+ kdbus_ep_unref(ep);
-+ }
-+
-+ pr_info("closing bus %s/%s\n", bus->ns->devpath, bus->name);
-+}
-+
-+int kdbus_bus_new(struct kdbus_ns *ns, const char *name, umode_t mode,
-+ uid_t uid, gid_t gid, struct kdbus_bus **bus)
-+{
-+ struct kdbus_bus *b;
-+ int err;
-+
-+ b = kzalloc(sizeof(struct kdbus_bus), GFP_KERNEL);
-+ if (!b)
-+ return -ENOMEM;
-+
-+ b->ref = 1;
-+ b->ns = ns;
-+ /* connection 0 == kernel/multi-cast */
-+ b->conn_id_next = 1;
-+ mutex_init(&b->lock);
-+ idr_init(&b->conn_idr);
-+ INIT_LIST_HEAD(&b->ep_list);
-+
-+ if (uid > 0)
-+ b->name = kasprintf(GFP_KERNEL, "%u-%s", uid, name);
-+ else
-+ b->name = kstrdup(name, GFP_KERNEL);
-+ if (!b->name) {
-+ err = -ENOMEM;
-+ goto err;
-+ }
-+
-+ err = kdbus_ep_new(b, "bus", mode, uid, gid, &b->ep);
-+ if (err < 0)
-+ goto err;
-+
-+ mutex_lock(&ns->lock);
-+ b->id = ns->bus_id_next++;
-+ mutex_unlock(&ns->lock);
-+
-+ *bus = b;
-+ pr_info("created bus %llu '%s/%s'\n",
-+ (unsigned long long)b->id, ns->devpath, b->name);
-+ return 0;
-+err:
-+ kdbus_bus_unref(b);
-+ return err;
-+}
-+
-+
---- /dev/null
-+++ b/drivers/kdbus/ep.c
-@@ -0,0 +1,200 @@
-+/*
-+ * Copyright (C) 2013 Kay Sievers
-+ * Copyright (C) 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2013 Linux Foundation
-+ *
-+ * kdbus is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License as published by the
-+ * Free Software Foundation; either version 2.1 of the License, or (at
-+ * your option) any later version.
-+ *
-+ */
-+
-+
-+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+
-+#include <linux/module.h>
-+#include <linux/device.h>
-+#include <linux/idr.h>
-+#include <linux/fs.h>
-+#include <linux/slab.h>
-+#include <linux/sched.h>
-+#include <linux/init.h>
-+#include <uapi/linux/major.h>
-+#include <uapi/kdbus/kdbus.h>
-+
-+#include "kdbus.h"
-+
-+/* endpoints are by default owned by the bus owner */
-+static char *kdbus_devnode_ep(struct device *dev,
-+ umode_t *mode, uid_t *uid, gid_t *gid)
-+{
-+ struct kdbus_ep *ep = dev_get_drvdata(dev);
-+
-+ if (mode)
-+ *mode = ep->mode;
-+ if (uid)
-+ *uid = ep->uid;
-+ if (gid)
-+ *gid = ep->gid;
-+ return NULL;
-+}
-+
-+static struct device_type kdbus_devtype_ep = {
-+ .name = "ep",
-+ .release = kdbus_release,
-+ .devnode = kdbus_devnode_ep,
-+};
-+
-+struct kdbus_ep *kdbus_ep_ref(struct kdbus_ep *ep)
-+{
-+ if (!ep)
-+ return NULL;
-+ ep->ref++;
-+ return ep;
-+}
-+
-+void kdbus_ep_disconnect(struct kdbus_ep *ep)
-+{
-+ if (ep->disconnected)
-+ return;
-+ ep->disconnected = true;
-+
-+ if (ep->dev) {
-+ device_unregister(ep->dev);
-+ ep->dev = NULL;
-+ }
-+ if (ep->minor > 0) {
-+ idr_remove(&ep->bus->ns->idr, ep->minor);
-+ ep->minor = 0;
-+ }
-+ pr_info("closing endpoint %s/%s/%s\n",
-+ ep->bus->ns->devpath, ep->bus->name, ep->name);
-+}
-+
-+struct kdbus_ep *kdbus_ep_unref(struct kdbus_ep *ep)
-+{
-+ if (!ep)
-+ return NULL;
-+ ep->ref--;
-+ if (ep->ref > 0)
-+ return ep;
-+
-+ mutex_lock(&ep->bus->lock);
-+ kdbus_ep_disconnect(ep);
-+ pr_info("clean up endpoint %s/%s/%s\n",
-+ ep->bus->ns->devpath, ep->bus->name, ep->name);
-+ kdbus_bus_unref(ep->bus);
-+ mutex_unlock(&ep->bus->lock);
-+
-+ kfree(ep->name);
-+ kfree(ep);
-+ return NULL;
-+}
-+
-+/* Find the endpoint for a specific bus */
-+struct kdbus_ep *kdbus_ep_find(struct kdbus_bus *bus, const char *name)
-+{
-+ struct kdbus_ep *ep;
-+
-+ mutex_lock(&bus->lock);
-+ list_for_each_entry(ep, &bus->ep_list, bus_entry) {
-+ if (!strcmp(ep->name, name))
-+ goto exit;
-+ }
-+ /* Endpoint not found so return NULL */
-+ ep = NULL;
-+exit:
-+ mutex_unlock(&bus->lock);
-+
-+ return ep;
-+}
-+
-+int kdbus_ep_new(struct kdbus_bus *bus, const char *name, umode_t mode,
-+ uid_t uid, gid_t gid, struct kdbus_ep **ep)
-+{
-+ struct kdbus_ep *e;
-+ int err;
-+ int i;
-+
-+ e = kzalloc(sizeof(struct kdbus_ep), GFP_KERNEL);
-+ if (!e)
-+ return -ENOMEM;
-+
-+ mutex_lock(&bus->ns->lock);
-+ e->ref = 1;
-+ e->mode = mode;
-+ e->uid = uid;
-+ e->gid = gid;
-+
-+ e->name = kstrdup(name, GFP_KERNEL);
-+ if (!e->name) {
-+ err = -ENOMEM;
-+ goto err;
-+ }
-+
-+ /* register minor in our endpoint map */
-+ if (!idr_pre_get(&bus->ns->idr, GFP_KERNEL)) {
-+ err = -ENOMEM;
-+ goto err_unlock;
-+ }
-+ err = idr_get_new_above(&bus->ns->idr, e, 1, &i);
-+ if (err < 0)
-+ goto err_unlock;
-+ e->minor = i;
-+
-+ /* get id for this endpoint from bus */
-+ mutex_lock(&bus->lock);
-+ e->id = bus->ep_id_next++;
-+ mutex_unlock(&bus->lock);
-+
-+ /* register bus endpoint device */
-+ e->dev = kzalloc(sizeof(struct device), GFP_KERNEL);
-+ if (!e->dev)
-+ goto err;
-+ dev_set_name(e->dev, "%s/%s/%s", bus->ns->devpath, bus->name, name);
-+ e->dev->bus = &kdbus_subsys;
-+ e->dev->type = &kdbus_devtype_ep;
-+ e->dev->devt = MKDEV(bus->ns->major, e->minor);
-+ dev_set_drvdata(e->dev, e);
-+ err = device_register(e->dev);
-+ if (err < 0) {
-+ put_device(e->dev);
-+ e->dev = NULL;
-+ }
-+
-+ init_waitqueue_head(&e->wait);
-+
-+ /* Link this endpoint to the bus it is on */
-+ e->bus = kdbus_bus_ref(bus);
-+ list_add_tail(&e->bus_entry, &bus->ep_list);
-+
-+ mutex_unlock(&bus->ns->lock);
-+
-+ if (ep)
-+ *ep = e;
-+ pr_info("created endpoint %llu for bus '%s/%s/%s'\n",
-+ (unsigned long long)e->id, bus->ns->devpath, bus->name, name);
-+ return 0;
-+
-+err_unlock:
-+ mutex_unlock(&bus->ns->lock);
-+err:
-+ kdbus_ep_unref(e);
-+ return err;
-+}
-+
-+int kdbus_ep_remove(struct kdbus_ep *ep)
-+{
-+ struct kdbus_bus *bus = ep->bus;
-+
-+ mutex_lock(&bus->ns->lock);
-+ device_unregister(ep->dev);
-+ list_del(&ep->bus_entry);
-+ kdbus_ep_unref(ep);
-+ mutex_unlock(&bus->ns->lock);
-+ kdbus_bus_unref(bus);
-+ return 0;
-+}
-+
-+
---- /dev/null
-+++ b/drivers/kdbus/kdbus.c
-@@ -0,0 +1,611 @@
-+/*
-+ * kdbus - interprocess message routing
-+ *
-+ * Copyright (C) 2013 Kay Sievers
-+ * Copyright (C) 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2013 Linux Foundation
-+ *
-+ * kdbus is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License as published by the
-+ * Free Software Foundation; either version 2.1 of the License, or (at
-+ * your option) any later version.
-+ *
-+ */
-+
-+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+
-+#include <linux/module.h>
-+#include <linux/device.h>
-+#include <linux/idr.h>
-+#include <linux/fs.h>
-+#include <linux/slab.h>
-+#include <linux/sched.h>
-+#include <linux/mutex.h>
-+#include <linux/init.h>
-+#include <linux/poll.h>
-+//#include <asm/uaccess.h>
-+#include <uapi/linux/major.h>
-+#include <uapi/kdbus/kdbus.h>
-+
-+#include "kdbus.h"
-+
-+/*
-+ * TODO:
-+ * - set parent for driver-core /sys/devices/kdbus!... devices to virtual/kdbus/,
-+ * the bus subsys misses the "no parent" logic the class subsys has
-+ *
-+ * - switch to a 64bit idr for connection id <--> kdbus_conn
-+ */
-+
-+/*
-+ * Example of device nodes in /dev. For any future changes, keep in mind,
-+ * that the layout should support a possible /dev/kdbus/ filesystem for the
-+ * init namspace and one for each sub-namespace.
-+ *
-+ * /dev/kdbus/
-+ * |-- control
-+ * |-- system
-+ * | |-- bus
-+ * | |-- ep-epiphany
-+ * | `-- ep-firefox
-+ * |-- 2702-user
-+ * | `-- bus
-+ * |-- 1000-user
-+ * | `-- bus
-+ * `-- ns
-+ * |-- myfedoracontainer
-+ * | |-- control
-+ * | |-- system
-+ * | | `-- bus
-+ * | `-- 1000-user
-+ * | `-- bus
-+ * `-- mydebiancontainer
-+ * |-- control
-+ * |-- system
-+ * `-- bus
-+ */
-+
-+/* kdbus sysfs subsystem */
-+struct bus_type kdbus_subsys = {
-+ .name = "kdbus",
-+};
-+
-+/* List of all connections in the system. */
-+/* Well, really only the endpoint connections,
-+ * that's all we care about for now */
-+static LIST_HEAD(connection_list);
-+
-+/* kdbus initial namespace */
-+static struct kdbus_ns *kdbus_ns_init;
-+
-+/* map of majors to namespaces */
-+DEFINE_IDR(kdbus_ns_major_idr);
-+
-+/* namespace list lock */
-+DEFINE_MUTEX(kdbus_subsys_lock);
-+
-+static int kdbus_msg_new(struct kdbus_conn *conn, struct kdbus_msg __user *umsg,
-+ struct kdbus_msg **msg);
-+static int kdbus_msg_send(struct kdbus_conn *conn, struct kdbus_msg *msg);
-+
-+
-+static void kdbus_msg_release(struct kref *kref)
-+{
-+ struct kdbus_test_msg *msg = container_of(kref, struct kdbus_test_msg, kref);
-+ kfree(msg);
-+}
-+
-+
-+/* kdbus file operations */
-+static int kdbus_conn_open(struct inode *inode, struct file *file)
-+{
-+ struct kdbus_conn *conn;
-+ struct kdbus_ns *ns;
-+ struct kdbus_ep *ep;
-+ int i;
-+ int err;
-+
-+ conn = kzalloc(sizeof(struct kdbus_conn), GFP_KERNEL);
-+ if (!conn)
-+ return -ENOMEM;
-+
-+ /* find and reference namespace */
-+ mutex_lock(&kdbus_subsys_lock);
-+ ns = idr_find(&kdbus_ns_major_idr, MAJOR(inode->i_rdev));
-+ if (!ns || ns->disconnected) {
-+ kfree(conn);
-+ mutex_unlock(&kdbus_subsys_lock);
-+ return -ENOENT;
-+ }
-+ conn->ns = kdbus_ns_ref(ns);
-+ file->private_data = conn;
-+ mutex_unlock(&kdbus_subsys_lock);
-+
-+ /* control device node */
-+ if (MINOR(inode->i_rdev) == 0) {
-+ conn->type = KDBUS_CONN_CONTROL;
-+ file->private_data = conn;
-+ pr_info("opened control device '%s/control'\n",
-+ conn->ns->devpath);
-+ return 0;
-+ }
-+
-+ /* find endpoint for device node */
-+ mutex_lock(&conn->ns->lock);
-+ ep = idr_find(&conn->ns->idr, MINOR(inode->i_rdev));
-+ if (!ep || ep->disconnected) {
-+ err = -ENOENT;
-+ goto err_unlock;
-+ }
-+
-+ /* create endpoint connection */
-+ conn->type = KDBUS_CONN_EP;
-+ conn->ep = kdbus_ep_ref(ep);
-+
-+ /* get and register new id for this connection */
-+ conn->id = conn->ep->bus->conn_id_next++;
-+ if (!idr_pre_get(&conn->ep->bus->conn_idr, GFP_KERNEL)) {
-+ err = -ENOMEM;
-+ goto err_unlock;
-+ }
-+ /* FIXME: get 64 bit working, this will fail for the 2^31th connection */
-+ err = idr_get_new_above(&conn->ep->bus->conn_idr, conn, conn->id, &i);
-+ if (err >= 0 && conn->id != i) {
-+ idr_remove(&conn->ep->bus->conn_idr, i);
-+ err = -EEXIST;
-+ goto err_unlock;
-+ }
-+
-+ mutex_init(&conn->msg_lock);
-+ INIT_LIST_HEAD(&conn->msg_list);
-+
-+ list_add_tail(&connection_list, &conn->connection_entry);
-+
-+ file->private_data = conn;
-+ mutex_unlock(&conn->ns->lock);
-+
-+ pr_info("created endpoint bus connection %llu '%s/%s'\n",
-+ (unsigned long long)conn->id, conn->ns->devpath,
-+ conn->ep->bus->name);
-+ return 0;
-+
-+err_unlock:
-+ mutex_unlock(&conn->ns->lock);
-+ kfree(conn);
-+ return err;
-+}
-+
-+static int kdbus_conn_release(struct inode *inode, struct file *file)
-+{
-+ struct kdbus_conn *conn = file->private_data;
-+ struct kdbus_test_msg *msg;
-+ struct kdbus_msg_list_entry *msg_entry, *tmp_entry;
-+
-+ switch (conn->type) {
-+ case KDBUS_CONN_NS_OWNER:
-+ break;
-+
-+ case KDBUS_CONN_BUS_OWNER:
-+ kdbus_bus_disconnect(conn->bus_owner);
-+ kdbus_bus_unref(conn->bus_owner);
-+ break;
-+
-+ case KDBUS_CONN_EP:
-+ kdbus_ep_unref(conn->ep);
-+ list_del(&conn->connection_entry);
-+ /* clean up any messages still left on this endpoint */
-+ mutex_lock(&conn->msg_lock);
-+ list_for_each_entry_safe(msg_entry, tmp_entry, &conn->msg_list, entry) {
-+ msg = msg_entry->msg;
-+ list_del(&msg_entry->entry);
-+ kfree(msg_entry);
-+ kref_put(&msg->kref, kdbus_msg_release);
-+ }
-+ mutex_unlock(&conn->msg_lock);
-+
-+ break;
-+
-+ default:
-+ break;
-+ }
-+
-+ mutex_lock(&conn->ns->lock);
-+ kdbus_ns_unref(conn->ns);
-+ mutex_unlock(&conn->ns->lock);
-+ kfree(conn);
-+ return 0;
-+}
-+
-+/* kdbus control device commands */
-+static long kdbus_conn_ioctl_control(struct file *file, unsigned int cmd,
-+ void __user *argp)
-+{
-+ struct kdbus_conn *conn = file->private_data;
-+ struct kdbus_cmd_name name;
-+ struct kdbus_bus *bus = NULL;
-+ struct kdbus_ns *ns = NULL;
-+ int err;
-+
-+ switch (cmd) {
-+ case KDBUS_CMD_BUS_CREATE:
-+ if (copy_from_user(&name, argp, sizeof(struct kdbus_cmd_name)))
-+ return -EFAULT;
-+
-+ err = kdbus_bus_new(conn->ns, name.name,
-+ 0660, current_fsuid(), current_fsgid(),
-+ &bus);
-+ if (err < 0)
-+ return err;
-+
-+ /* turn the control fd into a new bus owner device */
-+ conn->type = KDBUS_CONN_BUS_OWNER;
-+ conn->bus_owner = bus;
-+ break;
-+
-+#if 0 /* FIXME Don't know if we really want this... */
-+ case KDBUS_CMD_BUS_REMOVE:
-+ if (copy_from_user(&name, argp, sizeof(struct kdbus_cmd_name)))
-+ return -EFAULT;
-+
-+ bus = kdbus_bus_find(name.name);
-+ if (!bus)
-+ return -EINVAL;
-+ kdbus_bus_disconnect(bus); // FIXME needed?
-+ kdbus_bus_unref(bus);
-+ break;
-+#endif
-+ case KDBUS_CMD_NS_CREATE:
-+ if (copy_from_user(&name, argp, sizeof(struct kdbus_cmd_name)))
-+ return -EFAULT;
-+
-+ err = kdbus_ns_new(kdbus_ns_init, name.name, &ns);
-+ if (err < 0) {
-+ pr_err("failed to create namespace %s, err=%i\n",
-+ name.name, err);
-+ return err;
-+ }
-+ break;
-+
-+ case KDBUS_CMD_NS_REMOVE:
-+ if (copy_from_user(&name, argp, sizeof(struct kdbus_cmd_name)))
-+ return -EFAULT;
-+
-+ ns = kdbus_ns_find(name.name);
-+ if (!ns)
-+ return -EINVAL;
-+
-+ /* we can not remove the "default" namespace */
-+ if (ns == kdbus_ns_init)
-+ return -EINVAL;
-+
-+ kdbus_ns_unref(ns);
-+ break;
-+
-+ default:
-+ return -ENOTTY;
-+ }
-+ return 0;
-+}
-+
-+/* kdbus bus endpoint commands */
-+static long kdbus_conn_ioctl_ep(struct file *file, unsigned int cmd,
-+ void __user *argp)
-+{
-+ struct kdbus_conn *conn = file->private_data;
-+ struct kdbus_cmd_name name;
-+ struct kdbus_msg *msg;
-+ struct kdbus_ep *ep;
-+ long err;
-+
-+ /* We need a connection before we can do anything with an ioctl */
-+ if (!conn)
-+ return -EINVAL;
-+
-+ switch (cmd) {
-+ case KDBUS_CMD_EP_CREATE:
-+ /* create a new endpoint for this bus */
-+ if (copy_from_user(&name, argp, sizeof(struct kdbus_cmd_name)))
-+ return -EFAULT;
-+ return kdbus_ep_new(conn->ep->bus, name.name,
-+ 0660, current_fsuid(), current_fsgid(),
-+ NULL);
-+
-+ case KDBUS_CMD_EP_REMOVE:
-+ /* remove an endpoint from this bus */
-+ if (copy_from_user(&name, argp, sizeof(struct kdbus_cmd_name)))
-+ return -EFAULT;
-+ ep = kdbus_ep_find(conn->bus_owner, name.name);
-+ if (!ep)
-+ return -EINVAL;
-+
-+ return kdbus_ep_remove(ep);
-+
-+ case KDBUS_CMD_EP_POLICY_SET:
-+ /* upload a policy for this bus */
-+ return -ENOSYS;
-+
-+ case KDBUS_CMD_NAME_ACQUIRE:
-+ /* acquire a well-known name */
-+ return -ENOSYS;
-+
-+ case KDBUS_CMD_NAME_RELEASE:
-+ /* release a well-known name */
-+ return -ENOSYS;
-+
-+ case KDBUS_CMD_NAME_LIST:
-+ /* return all current well-known names */
-+ return -ENOSYS;
-+
-+ case KDBUS_CMD_MATCH_ADD:
-+ /* subscribe to/filter for broadcast messages */
-+ return -ENOSYS;
-+
-+ case KDBUS_CMD_MATCH_REMOVE:
-+ /* unsubscribe from broadcast messages */
-+ return -ENOSYS;
-+
-+ case KDBUS_CMD_MSG_SEND:
-+ /* send a message */
-+ err = kdbus_msg_new(conn, argp, &msg);
-+ if (err < 0)
-+ return err;
-+ return kdbus_msg_send(conn, msg);
-+
-+ case KDBUS_CMD_MSG_RECV:
-+ /* receive a message, needs to be freed */
-+ return -ENOSYS;
-+
-+ default:
-+ return -ENOTTY;
-+ }
-+}
-+
-+static long kdbus_conn_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
-+{
-+ struct kdbus_conn *conn = file->private_data;
-+ void __user *argp = (void __user *)arg;
-+
-+ pr_info("%s, cmd=%d\n", __func__, cmd);
-+ switch (conn->type) {
-+ case KDBUS_CONN_CONTROL:
-+ pr_info("control ioctl\n");
-+ return kdbus_conn_ioctl_control(file, cmd, argp);
-+
-+ case KDBUS_CONN_EP:
-+ pr_info("endpoint ioctl\n");
-+ return kdbus_conn_ioctl_ep(file, cmd, argp);
-+
-+ default:
-+ pr_info("bad type\n");
-+ return -EINVAL;
-+ }
-+}
-+
-+static unsigned int kdbus_conn_poll(struct file *file,
-+ struct poll_table_struct *wait)
-+{
-+ struct kdbus_conn *conn = file->private_data;
-+ unsigned int mask = 0;
-+
-+ /* Only an endpoint can read/write data */
-+ if (conn->type != KDBUS_CONN_EP)
-+ return POLLERR | POLLHUP;
-+
-+ poll_wait(file, &conn->ep->wait, wait);
-+
-+ mutex_lock(&conn->msg_lock);
-+ if (!list_empty(&conn->msg_list))
-+ mask |= POLLIN | POLLRDNORM;
-+ mutex_unlock(&conn->msg_lock);
-+
-+ return 0;
-+}
-+
-+static int kdbus_conn_mmap(struct file *file, struct vm_area_struct *vma)
-+{
-+ return -EINVAL;
-+}
-+
-+static ssize_t kdbus_conn_write(struct file *file, const char __user *ubuf, size_t count, loff_t *ppos)
-+{
-+ struct kdbus_conn *conn = file->private_data;
-+ struct kdbus_conn *temp_conn;
-+ struct kdbus_test_msg *msg;
-+
-+ /* Only an endpoint can read/write data */
-+ if (conn->type != KDBUS_CONN_EP)
-+ return -EINVAL;
-+
-+ /* FIXME: Let's cap a message size at PAGE_SIZE for now */
-+ if (count > PAGE_SIZE)
-+ return -EINVAL;
-+
-+ if (count == 0)
-+ return 0;
-+
-+ msg = kmalloc((sizeof(*msg) + count), GFP_KERNEL);
-+ if (!msg)
-+ return -ENOMEM;
-+
-+ if (copy_from_user(&msg->data[0], ubuf, count))
-+ return -EFAULT;
-+
-+ kref_init(&msg->kref);
-+ msg->length = count;
-+
-+ /* Walk the list of connections,
-+ * find any endpoints that match our endpoint,
-+ * create a kdbus_msg_list_entry for it,
-+ * attach the message to the endpoint list,
-+ * wake the connection up. */
-+
-+ /* what do we lock here? FIXME */
-+
-+ list_for_each_entry(temp_conn, &connection_list, connection_entry) {
-+ if (temp_conn->type != KDBUS_CONN_EP)
-+ continue;
-+ if (temp_conn->ep == conn->ep) {
-+ /* Matching endpoints */
-+ struct kdbus_msg_list_entry *msg_list_entry;
-+
-+ msg_list_entry = kmalloc(sizeof(*msg_list_entry), GFP_KERNEL);
-+ kref_get(&msg->kref);
-+ msg_list_entry->msg = msg;
-+ mutex_lock(&temp_conn->msg_lock);
-+ list_add_tail(&temp_conn->msg_list, &msg_list_entry->entry);
-+ mutex_unlock(&temp_conn->msg_lock);
-+ /* wake up the other processes. Hopefully... */
-+ wake_up_interruptible_all(&temp_conn->ep->wait);
-+ }
-+ }
-+
-+ /* drop our reference on the message, as we are done with it */
-+ kref_put(&msg->kref, kdbus_msg_release);
-+ return count;
-+}
-+
-+static ssize_t kdbus_conn_read(struct file *file, char __user *ubuf, size_t count, loff_t *ppos)
-+{
-+ struct kdbus_conn *conn = file->private_data;
-+ struct kdbus_msg_list_entry *msg_list_entry;
-+ struct kdbus_test_msg *msg;
-+ ssize_t retval = 0;
-+
-+ /* Only an endpoint can read/write data */
-+ if (conn->type != KDBUS_CONN_EP)
-+ return -EINVAL;
-+
-+ if (count == 0)
-+ return 0;
-+
-+ if (mutex_lock_interruptible(&conn->msg_lock))
-+ return -ERESTARTSYS;
-+
-+ while (list_empty(&conn->msg_list)) {
-+ /* Nothing to read, so try again or sleep */
-+ mutex_unlock(&conn->msg_lock);
-+
-+ if (file->f_flags & O_NONBLOCK)
-+ return -EAGAIN;
-+
-+ /* sleep until we get something */
-+ if (wait_event_interruptible(conn->ep->wait, list_empty(&conn->msg_list)))
-+ return -ERESTARTSYS;
-+
-+ if (mutex_lock_interruptible(&conn->msg_lock))
-+ return -ERESTARTSYS;
-+ }
-+
-+ /* let's grab a message from our list to write out */
-+ if (!list_empty(&conn->msg_list)) {
-+ msg_list_entry = list_entry(&conn->msg_list, struct kdbus_msg_list_entry, entry);
-+ msg = msg_list_entry->msg;
-+ if (msg->length > count) {
-+ retval = -E2BIG; // FIXME wrong error code, I know, what should we use?
-+ goto exit;
-+ }
-+ if (copy_to_user(ubuf, &msg->data[0], msg->length)) {
-+ retval = -EFAULT;
-+ goto exit;
-+ }
-+ list_del(&msg_list_entry->entry);
-+ kfree(msg_list_entry);
-+ retval = msg->length;
-+ kref_put(&msg->kref, kdbus_msg_release);
-+ }
-+
-+exit:
-+ mutex_unlock(&conn->msg_lock);
-+ return retval;
-+}
-+
-+const struct file_operations kdbus_device_ops = {
-+ .owner = THIS_MODULE,
-+ .open = kdbus_conn_open,
-+ .release = kdbus_conn_release,
-+ .unlocked_ioctl = kdbus_conn_ioctl,
-+ .compat_ioctl = kdbus_conn_ioctl,
-+ .poll = kdbus_conn_poll,
-+ .mmap = kdbus_conn_mmap,
-+ .llseek = noop_llseek,
-+ .write = kdbus_conn_write,
-+ .read = kdbus_conn_read,
-+};
-+
-+static void kdbus_msg_free(struct kdbus_msg *msg)
-+{
-+ kfree(msg);
-+}
-+
-+static int kdbus_msg_new(struct kdbus_conn *conn, struct kdbus_msg __user *umsg,
-+ struct kdbus_msg **msg)
-+{
-+ struct kdbus_msg *m;
-+ int err;
-+
-+ m = kmalloc(sizeof(struct kdbus_msg), GFP_KERNEL);
-+ if (!m)
-+ return -ENOMEM;
-+ if (copy_from_user(m, umsg, sizeof(struct kdbus_msg))) {
-+ err = -EFAULT;
-+ goto out_err;
-+ }
-+
-+ m->src_id = conn->id;
-+ m->msg_id = conn->ep->bus->msg_id_next++;
-+ *msg = m;
-+ return 0;
-+out_err:
-+ kdbus_msg_free(m);
-+ return err;
-+}
-+
-+static int kdbus_msg_send(struct kdbus_conn *conn, struct kdbus_msg *msg)
-+{
-+ struct kdbus_conn *conn_dst;
-+
-+ conn_dst = idr_find(&conn->ep->bus->conn_idr, msg->dst_id);
-+ if (!conn_dst)
-+ return -ENOENT;
-+
-+ pr_info("sending message %llu from %llu to %llu\n",
-+ (unsigned long long)msg->msg_id,
-+ (unsigned long long)msg->src_id,
-+ (unsigned long long)msg->dst_id);
-+
-+ kdbus_msg_free(msg);
-+ return 0;
-+}
-+
-+static int __init kdbus_init(void)
-+{
-+ int err;
-+
-+ err = bus_register(&kdbus_subsys);
-+ if (err < 0)
-+ return err;
-+
-+ err = kdbus_ns_new(NULL, NULL, &kdbus_ns_init);
-+ if (err < 0) {
-+ bus_unregister(&kdbus_subsys);
-+ pr_err("failed to initialize err=%i\n", err);
-+ return err;
-+ }
-+
-+ pr_info("initialized\n");
-+ return 0;
-+}
-+
-+static void __exit kdbus_exit(void)
-+{
-+ kdbus_ns_unref(kdbus_ns_init);
-+ bus_unregister(&kdbus_subsys);
-+ pr_info("unloaded\n");
-+}
-+
-+module_init(kdbus_init);
-+module_exit(kdbus_exit);
-+MODULE_LICENSE("GPL");
-+MODULE_DESCRIPTION("kdbus interprocess message router");
-+MODULE_ALIAS_CHARDEV(KDBUS_CHAR_MAJOR, 0);
-+MODULE_ALIAS("devname:kdbus/control");
---- /dev/null
-+++ b/drivers/kdbus/kdbus.h
-@@ -0,0 +1,185 @@
-+/*
-+ * Copyright (C) 2013 Kay Sievers
-+ * Copyright (C) 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2013 Linux Foundation
-+ *
-+ * kdbus is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License as published by the
-+ * Free Software Foundation; either version 2.1 of the License, or (at
-+ * your option) any later version.
-+ *
-+ */
-+
-+
-+#ifndef __INTERNAL_KDBUS_H
-+#define __INTERNAL_KDBUS_H
-+
-+/*
-+ * kdbus namespace
-+ * - provides a "control" node
-+ * - owns a major number
-+ * - owns all created buses
-+ * - the initial namespace is unnamed and stays around for forver
-+ * - new namespaces are created by opening the control node and
-+ * issuing KDBUS_NS_CREATE
-+ * - closing the connection destroys the created namespace
-+ */
-+struct kdbus_ns {
-+ unsigned int ref; /* reference count */
-+ const char *name; /* name of the namespace */
-+ bool disconnected; /* invalidated data */
-+ struct kdbus_ns *parent;/* parent namespace */
-+ __u64 id; /* global id of this namespace */
-+ const char *devpath; /* /dev base directory path */
-+ int major; /* device major number for all nodes */
-+ struct idr idr; /* map of endpoint minors to buses */
-+ struct device *dev; /* control device node, minor == 0 */
-+ struct mutex lock; /* ns data lock */
-+ __u64 bus_id_next; /* next bus id sequence number */
-+ struct list_head list_entry;
-+};
-+
-+/*
-+ * kdbus bus
-+ * - provides a "bus" endpoint
-+ * - owns additional endpoints
-+ * - own all bus connections
-+ * - new buses are created by opening the control node and
-+ * issuing KDBUS_BUS_CREATE
-+ * - closing the connection destroys the created bus
-+ */
-+struct kdbus_bus {
-+ unsigned int ref; /* reference count */
-+ bool disconnected; /* invalidated data */
-+ struct kdbus_ns *ns; /* namespace of this bus */
-+ const char *name; /* bus name */
-+ __u64 id; /* id of this bus in the namespace */
-+ struct mutex lock; /* bus data lock */
-+ __u64 ep_id_next; /* next endpoint id sequence number */
-+ __u64 conn_id_next; /* next connection id sequence number */
-+ __u64 msg_id_next; /* next message id sequence number */
-+ struct idr conn_idr; /* map of connection ids */
-+ struct kdbus_ep *ep; /* "bus" default endpoint */
-+ struct list_head ep_list; /* endpoints assigned to this bus */
-+};
-+
-+/*
-+ * kdbus endpoint
-+ * - offers access to a bus, the default device node name is "bus"
-+ * - additional endpoints can carry a specific policy/filters
-+ */
-+struct kdbus_ep {
-+ unsigned int ref; /* reference count */
-+ bool disconnected; /* invalidated data */
-+ struct kdbus_bus *bus; /* bus behind this endpoint */
-+ const char *name; /* name, prefixed with uid */
-+ __u64 id; /* id of this endpoint on the bus */
-+ unsigned int minor; /* minor of this endpoint in the namespace major */
-+ struct device *dev; /* device node of this endpoint */
-+ umode_t mode; /* file mode of this endpoint device node */
-+ uid_t uid; /* uid owning this endpoint */
-+ gid_t gid; /* gid owning this endpoint */
-+ struct list_head bus_entry; /* list of endpoints for this bus */
-+ struct list_head message_list; /* messages in flight for this endpoint */
-+ wait_queue_head_t wait; /* wake up this endpoint */
-+};
-+
-+/*
-+ * kdbus connection
-+ * - connection to a control node or an endpoint
-+ */
-+enum kdbus_conn_type {
-+ KDBUS_CONN_UNDEFINED,
-+ KDBUS_CONN_CONTROL,
-+ KDBUS_CONN_NS_OWNER,
-+ KDBUS_CONN_BUS_OWNER,
-+ KDBUS_CONN_EP,
-+};
-+
-+struct kdbus_conn {
-+ enum kdbus_conn_type type;
-+ struct kdbus_ns *ns;
-+ union {
-+ struct kdbus_ns *ns_owner;
-+ struct kdbus_bus *bus_owner;
-+ struct kdbus_ep *ep;
-+ };
-+ __u64 id; /* id of the connection on the bus */
-+
-+ /*
-+ * first, horrible cut at messages assigned to connections
-+ * odds are, this is going to be slow, but let's measure it first to
-+ * see what the real numbers are, and where the bottlenecks are.
-+ * Premature optimization and all...
-+ */
-+ struct mutex msg_lock;
-+ struct list_head msg_list;
-+
-+ /* Ugh a list of all connections in the system? Ugly, but we need to
-+ * be able to walk them all somehow. Maybe just have a list on the
-+ * endpoints of the connections associated with that endpoint? That's
-+ * all we really need in the end... */
-+ struct list_head connection_entry;
-+};
-+
-+/* kdbus message */
-+enum kdbus_msg_data_type {
-+ KDBUS_MSG_DATA_UNDEFINED,
-+ KDBUS_MSG_DATA_MEM,
-+};
-+
-+struct kdbus_msg_data {
-+ u64 data;
-+ u64 size;
-+ u32 type;
-+ u32 flags;
-+};
-+
-+/* To knock around with for now */
-+struct kdbus_test_msg {
-+ struct kref kref;
-+ u32 length;
-+ u8 data[0];
-+};
-+
-+struct kdbus_msg_list_entry {
-+ struct kdbus_test_msg *msg;
-+ struct list_head entry;
-+};
-+
-+/* namespace stuff */
-+
-+extern const struct file_operations kdbus_device_ops;
-+extern struct mutex kdbus_subsys_lock;
-+extern struct idr kdbus_ns_major_idr;
-+struct kdbus_ns *kdbus_ns_ref(struct kdbus_ns *ns);
-+void kdbus_ns_disconnect(struct kdbus_ns *ns);
-+struct kdbus_ns *kdbus_ns_unref(struct kdbus_ns *ns);
-+int kdbus_ns_new(struct kdbus_ns *parent, const char *name, struct kdbus_ns **ns);
-+struct kdbus_ns *kdbus_ns_find(const char *name);
-+
-+
-+/* bus stuff */
-+extern struct bus_type kdbus_subsys;
-+void kdbus_release(struct device *dev);
-+
-+struct kdbus_bus *kdbus_bus_unref(struct kdbus_bus *bus);
-+struct kdbus_bus *kdbus_bus_ref(struct kdbus_bus *bus);
-+void kdbus_bus_disconnect(struct kdbus_bus *bus);
-+int kdbus_bus_new(struct kdbus_ns *ns, const char *name, umode_t mode,
-+ uid_t uid, gid_t gid, struct kdbus_bus **bus);
-+
-+
-+/* endpoint stuff */
-+struct kdbus_ep *kdbus_ep_ref(struct kdbus_ep *ep);
-+struct kdbus_ep *kdbus_ep_unref(struct kdbus_ep *ep);
-+
-+struct kdbus_ep *kdbus_ep_find(struct kdbus_bus *bus, const char *name);
-+int kdbus_ep_new(struct kdbus_bus *bus, const char *name, umode_t mode,
-+ uid_t uid, gid_t gid, struct kdbus_ep **ep);
-+int kdbus_ep_remove(struct kdbus_ep *ep);
-+void kdbus_ep_disconnect(struct kdbus_ep *ep);
-+
-+
-+
-+#endif
---- /dev/null
-+++ b/drivers/kdbus/ns.c
-@@ -0,0 +1,217 @@
-+/*
-+ * Copyright (C) 2013 Kay Sievers
-+ * Copyright (C) 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2013 Linux Foundation
-+ *
-+ * kdbus is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License as published by the
-+ * Free Software Foundation; either version 2.1 of the License, or (at
-+ * your option) any later version.
-+ *
-+ */
-+
-+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-+
-+#include <linux/module.h>
-+#include <linux/device.h>
-+#include <linux/idr.h>
-+#include <linux/fs.h>
-+#include <linux/slab.h>
-+#include <linux/sched.h>
-+#include <linux/init.h>
-+#include <uapi/linux/major.h>
-+#include <uapi/kdbus/kdbus.h>
-+
-+#include "kdbus.h"
-+
-+/* global list of all namespaces */
-+static LIST_HEAD(namespace_list);
-+
-+/* next namespace id sequence number */
-+static __u64 kdbus_ns_id_next;
-+
-+/* control nodes are world accessible */
-+static char *kdbus_devnode_control(struct device *dev,
-+ umode_t *mode, uid_t *uid, gid_t *gid)
-+{
-+ if (mode)
-+ *mode = 0666;
-+ return NULL;
-+}
-+
-+static struct device_type kdbus_devtype_control = {
-+ .name = "control",
-+ .release = kdbus_release,
-+ .devnode = kdbus_devnode_control,
-+};
-+
-+
-+/* kdbus namespace */
-+struct kdbus_ns *kdbus_ns_ref(struct kdbus_ns *ns)
-+{
-+ if (!ns)
-+ return NULL;
-+ ns->ref++;
-+ return ns;
-+}
-+
-+void kdbus_ns_disconnect(struct kdbus_ns *ns)
-+{
-+ if (ns->disconnected)
-+ return;
-+ ns->disconnected = true;
-+
-+ if (ns->dev) {
-+ device_unregister(ns->dev);
-+ ns->dev = NULL;
-+ }
-+ if (ns->major > 0) {
-+ idr_remove(&kdbus_ns_major_idr, ns->major);
-+ unregister_chrdev(ns->major, "kdbus");
-+ ns->major = 0;
-+ }
-+ pr_info("closing namespace %s\n", ns->devpath);
-+}
-+
-+struct kdbus_ns *kdbus_ns_unref(struct kdbus_ns *ns)
-+{
-+ if (!ns)
-+ return NULL;
-+ ns->ref--;
-+ if (ns->ref > 0)
-+ return ns;
-+
-+ kdbus_ns_disconnect(ns);
-+ pr_info("clean up namespace %s\n", ns->devpath);
-+ list_del(&ns->list_entry);
-+ kfree(ns->name);
-+ kfree(ns->devpath);
-+ kfree(ns);
-+ return NULL;
-+}
-+
-+int kdbus_ns_new(struct kdbus_ns *parent, const char *name, struct kdbus_ns **ns)
-+{
-+ struct kdbus_ns *n;
-+ const char *ns_name = NULL;
-+ int i;
-+ int err;
-+
-+ pr_info("%s, %s\n", __func__, name);
-+
-+ if ((parent && !name) || (!parent && name))
-+ return -EINVAL;
-+
-+ n = kzalloc(sizeof(struct kdbus_ns), GFP_KERNEL);
-+ if (!n)
-+ return -ENOMEM;
-+
-+ if (name) {
-+ ns_name = kstrdup(name, GFP_KERNEL);
-+ if (!ns_name) {
-+ kfree(n);
-+ return -ENOMEM;
-+ }
-+ }
-+
-+ n->ref = 1;
-+ idr_init(&n->idr);
-+ mutex_init(&n->lock);
-+
-+ /* compose name and path of base directory in /dev */
-+ if (!parent) {
-+ /* initial namespace */
-+ n->devpath = kstrdup("kdbus", GFP_KERNEL);
-+ if (!n->devpath) {
-+ err = -ENOMEM;
-+ goto err;
-+ }
-+
-+ /* register static major to support module auto-loading */
-+ err = register_chrdev(KDBUS_CHAR_MAJOR, "kdbus", &kdbus_device_ops);
-+ if (err)
-+ goto err;
-+ n->major = KDBUS_CHAR_MAJOR;
-+ } else {
-+ n->parent = parent;
-+ n->devpath = kasprintf(GFP_KERNEL, "kdbus/ns/%s/%s", parent->devpath, name);
-+// n->devpath = kasprintf(GFP_KERNEL, "kdbus/ns/%s", name);
-+ if (!n->devpath) {
-+ err = -ENOMEM;
-+ goto err;
-+ }
-+
-+ /* get dynamic major */
-+ n->major = register_chrdev(0, "kdbus", &kdbus_device_ops);
-+ if (n->major < 0) {
-+ err = n->major;
-+ goto err;
-+ }
-+ n->name = ns_name;
-+ }
-+
-+ /* register major in our namespace map */
-+ mutex_lock(&kdbus_subsys_lock);
-+ if (!idr_pre_get(&kdbus_ns_major_idr, GFP_KERNEL)) {
-+ err = -ENOMEM;
-+ goto err_unlock;
-+ }
-+ err = idr_get_new_above(&kdbus_ns_major_idr, n, n->major, &i);
-+ if (err >= 0 && n->major != i) {
-+ idr_remove(&kdbus_ns_major_idr, i);
-+ err = -EEXIST;
-+ goto err_unlock;
-+ }
-+
-+ /* get id for this namespace */
-+ n->id = kdbus_ns_id_next++;
-+
-+ /* register control device for this namespace */
-+ n->dev = kzalloc(sizeof(struct device), GFP_KERNEL);
-+ if (!n->dev)
-+ goto err_unlock;
-+ dev_set_name(n->dev, "%s/%s", n->devpath, "control");
-+ n->dev->bus = &kdbus_subsys;
-+ n->dev->type = &kdbus_devtype_control;
-+ n->dev->devt = MKDEV(n->major, 0);
-+ dev_set_drvdata(n->dev, n);
-+ err = device_register(n->dev);
-+ if (err < 0) {
-+ put_device(n->dev);
-+ n->dev = NULL;
-+ goto err_unlock;
-+ }
-+
-+ /* Add to global list of namespaces so we can find it again */
-+ list_add_tail(&n->list_entry, &namespace_list);
-+
-+ mutex_unlock(&kdbus_subsys_lock);
-+
-+ *ns = n;
-+ pr_info("created namespace %llu '%s/'\n",
-+ (unsigned long long)n->id, n->devpath);
-+ return 0;
-+
-+err_unlock:
-+ mutex_unlock(&kdbus_subsys_lock);
-+err:
-+ kdbus_ns_unref(n);
-+ return err;
-+}
-+
-+struct kdbus_ns *kdbus_ns_find(const char *name)
-+{
-+ struct kdbus_ns *ns;
-+
-+ mutex_lock(&kdbus_subsys_lock);
-+ list_for_each_entry(ns, &namespace_list, list_entry) {
-+ if (!strcmp(ns->name, name))
-+ goto exit;
-+ }
-+ /* namespace not found so return NULL */
-+ ns = NULL;
-+exit:
-+ mutex_unlock(&kdbus_subsys_lock);
-+ return ns;
-+}
-+
---- /dev/null
-+++ b/include/uapi/kdbus/kdbus.h
-@@ -0,0 +1,123 @@
-+/*
-+ * Copyright (C) 2013 Kay Sievers
-+ * Copyright (C) 2013 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2013 Linux Foundation
-+ *
-+ * kdbus is free software; you can redistribute it and/or modify it under
-+ * the terms of the GNU Lesser General Public License as published by the
-+ * Free Software Foundation; either version 2.1 of the License, or (at
-+ * your option) any later version.
-+ *
-+ */
-+
-+#ifndef _KDBUS_H_
-+#define _KDBUS_H_
-+
-+#define KDBUS_IOC_MAGIC 0x95
-+
-+/* kdbus control device commands */
-+struct kdbus_cmd_name {
-+ uint64_t capabilities;
-+ char name[256];
-+ char reserved[256];
-+};
-+
-+struct kdbus_fake_message {
-+ char msg[256]; /* FIXME obviously... */
-+};
-+
-+/**
-+ * struct kdbus_msg
-+ *
-+ * set by userspace:
-+ * dst_id: destination id
-+ * filter: bloom filter for the kernel to use to filter messages
-+ * data_count: number of data structures for this message
-+ * data: data for the message
-+ *
-+ * set by kernel:
-+ * msg_id: message id, to allow userspace to sort messages
-+ * src_id: who sent the message
-+ * src_uid: uid of sending process
-+ * src_gid: gid of sending process
-+ * src_pid: pid of sending process
-+ * src_tid: tid of sending process
-+ * ts_nsec: timestamp when message was sent to the kernel
-+ *
-+ */
-+struct kdbus_msg {
-+ __u64 dst_id;
-+ __u64 filter;
-+
-+ __u64 msg_id;
-+ __u64 src_id;
-+ __u64 flags;
-+ __kernel_uid_t src_uid;
-+ __kernel_gid_t src_gid;
-+ __kernel_pid_t src_pid;
-+ __kernel_pid_t src_tid;
-+ __u64 ts_nsec;
-+ __u64 reserved[8];
-+ __u32 data_count;
-+ struct kdbus_msg_data *data;
-+};
-+
-+
-+
-+#if 0
-+/* Old-style dbus had the following message type: */
-+struct old_dbus_header {
-+ u8 endianness; /* 'l' for little endian, 'B' for big endian */
-+ u8 type; /* message type */
-+ u8 flags;
-+ u8 protocol_version;
-+ u32 message_length
-+ u32 cookie;
-+}
-+
-+#define DBUS_TYPE_INVALID 0
-+#define DBUS_TYPE_METHOD_CALL 1
-+#define DBUS_TYPE_METHOD_RETURN 2
-+#define DBUS_TYPE_ERROR 3
-+#define DBUS_TYPE_SIGNAL 4
-+
-+#define DBUS_FLAG_NO_REPLY_EXPECTED 0x01
-+#define DBUS_FLAG_NO_AUTO_START 0x02
-+
-+#define DBUS_FIELD_INVALID 0
-+#define DBUS_FIELD_PATH 1
-+#define DBUS_FIELD_INTERFACE 2
-+#define DBUS_FIELD_MEMBER 3
-+#define DBUS_FIELD_ERROR_NAME 4
-+#define DBUS_FIELD_REPLY_SERIAL 5
-+#define DBUS_FIELD_DESTINATION 6
-+#define DBUS_FIELD_SENDER 7
-+#define DBUS_FIELD_SIGNATURE 8
-+#define DBUS_FIELD_UNIX_FDS 9
-+
-+#endif
-+
-+enum kdbus_cmd {
-+ /* kdbus control commands */
-+ KDBUS_CMD_BUS_CREATE = _IOW(KDBUS_IOC_MAGIC, 0x00, struct kdbus_cmd_name),
-+ KDBUS_CMD_BUS_REMOVE = _IOW(KDBUS_IOC_MAGIC, 0x01, struct kdbus_cmd_name),
-+ KDBUS_CMD_NS_CREATE = _IOW(KDBUS_IOC_MAGIC, 0x10, struct kdbus_cmd_name),
-+ KDBUS_CMD_NS_REMOVE = _IOW(KDBUS_IOC_MAGIC, 0x11, struct kdbus_cmd_name),
-+
-+ /* kdbus endpoint commands */
-+ KDBUS_CMD_EP_CREATE = _IOWR(KDBUS_IOC_MAGIC, 0x30, struct kdbus_cmd_name),
-+ KDBUS_CMD_EP_REMOVE = _IOWR(KDBUS_IOC_MAGIC, 0x31, struct kdbus_cmd_name),
-+ KDBUS_CMD_EP_POLICY_SET = _IOWR(KDBUS_IOC_MAGIC, 0x32, int),
-+
-+ KDBUS_CMD_NAME_ACQUIRE = _IOWR(KDBUS_IOC_MAGIC, 0x50, int),
-+ KDBUS_CMD_NAME_RELEASE = _IOWR(KDBUS_IOC_MAGIC, 0x51, int),
-+ KDBUS_CMD_NAME_LIST = _IOWR(KDBUS_IOC_MAGIC, 0x52, int),
-+
-+ KDBUS_CMD_MATCH_ADD = _IOWR(KDBUS_IOC_MAGIC, 0x60, int),
-+ KDBUS_CMD_MATCH_REMOVE = _IOWR(KDBUS_IOC_MAGIC, 0x61, int),
-+
-+ KDBUS_CMD_MSG_SEND = _IOWR(KDBUS_IOC_MAGIC, 0x80, struct kdbus_fake_message),
-+ KDBUS_CMD_MSG_RECV = _IOWR(KDBUS_IOC_MAGIC, 0x81, struct kdbus_fake_message),
-+};
-+
-+#endif
---- a/include/uapi/linux/major.h
-+++ b/include/uapi/linux/major.h
-@@ -166,6 +166,8 @@
-
- #define OSST_MAJOR 206 /* OnStream-SCx0 SCSI tape */
-
-+#define KDBUS_CHAR_MAJOR 222
-+
- #define IBM_TTY3270_MAJOR 227
- #define IBM_FS3270_MAJOR 228
-
---- /dev/null
-+++ b/kdbus.c
-@@ -0,0 +1,77 @@
-+#define _GNU_SOURCE
-+#include <stdio.h>
-+#include <string.h>
-+#include <time.h>
-+#include <fcntl.h>
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <stdint.h>
-+#include <errno.h>
-+#include <assert.h>
-+#include <sys/ioctl.h>
-+
-+#include "include/uapi/kdbus/kdbus.h"
-+
-+int main(int argc, char *argv[])
-+{
-+ int fdc;
-+ int fdb;
-+ struct kdbus_cmd_name name;
-+ char *busname;
-+ char *bus;
-+ char *ep;
-+ char *ns;
-+ uid_t uid;
-+ int err;
-+
-+ uid = getuid();
-+ if (argv[1])
-+ busname = argv[1];
-+ else if (uid > 0)
-+ busname = "system";
-+ else
-+ busname = "user";
-+ strcpy(name.name, busname);
-+
-+ printf("-- opening /dev/kdbus/control\n");
-+ fdc = open("/dev/kdbus/control", O_RDWR|O_CLOEXEC);
-+ if (fdc < 0)
-+ return EXIT_FAILURE;
-+
-+ asprintf(&ns, "mydebiancontainer");
-+ strcpy(name.name, ns);
-+ printf("-- creating namespace called %s\n", ns);
-+ err = ioctl(fdc, KDBUS_CMD_NS_CREATE, &name);
-+ if (err)
-+ printf("--- error \"%s\"\n", err, strerror(errno));
-+
-+ printf("-- creating bus '%s'\n", name.name);
-+ err = ioctl(fdc, KDBUS_CMD_BUS_CREATE, &name);
-+ if (err)
-+ printf("--- error \"%s\"\n", err, strerror(errno));
-+
-+ if (uid > 0)
-+ asprintf(&bus, "/dev/kdbus/%u-%s/bus", uid, busname);
-+ else
-+ asprintf(&bus, "/dev/kdbus/%s/bus", busname);
-+ printf("-- opening bus connection %s\n", bus);
-+ fdb = open(bus, O_RDWR|O_CLOEXEC);
-+
-+
-+ asprintf(&ep, "ep-42");
-+ strcpy(name.name, ep);
-+ printf("-- creating endpoint for bus %s called %s\n", bus, ep);
-+ err = ioctl(fdb, KDBUS_CMD_EP_CREATE, &name);
-+ if (err)
-+ printf("--- error \"%s\"\n", err, strerror(errno));
-+
-+ printf("-- sleeping 10s\n");
-+ sleep(10);
-+
-+ printf("-- closing bus connection\n");
-+ close(fdb);
-+
-+ printf("-- closing bus master\n");
-+ close(fdc);
-+ return EXIT_SUCCESS;
-+}
diff --git a/dbus.patch b/dbus.patch
deleted file mode 100644
index 51bc79232d0fa1..00000000000000
--- a/dbus.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From foo@baz Thu Dec 27 10:01:09 PST 2012
-Date: Thu, 27 Dec 2012 10:01:09 -0800
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: dbus: in the kernel
-
-Something to play around with, don't take this seriously, yet...
-
----
- 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
-@@ -604,5 +604,8 @@ config TILE_SROM
- device appear much like a simple EEPROM, and knows
- how to partition a single ROM for multiple purposes.
-
-+config DBUS
-+ tristate "Kernel DBUS provider"
-+
- endmenu
-
---- a/drivers/char/Makefile
-+++ b/drivers/char/Makefile
-@@ -62,3 +62,4 @@ obj-$(CONFIG_JS_RTC) += js-rtc.o
- js-rtc-y = rtc.o
-
- obj-$(CONFIG_TILE_SROM) += tile-srom.o
-+obj-$(CONFIG_DBUS) += dbus.o
---- /dev/null
-+++ b/drivers/char/dbus.c
-@@ -0,0 +1,57 @@
-+/*
-+ * dbus - in kernel dbus functionality
-+ *
-+ * Copyright (C) 2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2012 Linux Foundation
-+ *
-+ * This file is released under the GPLv2 only.
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/mutex.h>
-+#include <linux/idr.h>
-+#include <linux/module.h>
-+#include <linux/dbus.h>
-+
-+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 dbus_init(void)
-+{
-+ return 0;
-+}
-+
-+static void dbus_exit(void)
-+{
-+}
-+
-+module_init(dbus_init);
-+module_exit(dbus_exit);
-+
-+MODULE_LICENSE("GPLv2");
---- /dev/null
-+++ b/include/linux/dbus.h
-@@ -0,0 +1,15 @@
-+/*
-+ * dbus.h - user/kernel dbus api
-+ *
-+ * Copyright (C) 2012 Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-+ * Copyright (C) 2012 Linux Foundation
-+ *
-+ * Released under the GPLv2 only.
-+ */
-+
-+#ifndef __DBUS_H
-+#define __DBUS_H
-+
-+
-+
-+#endif /* __DBUS_H */
diff --git a/dev_removal.patch b/dev_removal.patch
deleted file mode 100644
index 26888827a32d85..00000000000000
--- a/dev_removal.patch
+++ /dev/null
@@ -1,2677 +0,0 @@
-From foo@baz Wed Dec 12 11:06:35 PST 2012
-Date: Wed, 12 Dec 2012 11:06:35 -0800
-To: Greg KH <gregkh@linuxfoundation.org>
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-Subject: [PATCH] remove unneeded __dev* markings
-
-
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- drivers/ide/aec62xx.c | 8 ++--
- drivers/ide/alim15x3.c | 10 +++---
- drivers/ide/cs5520.c | 4 +-
- drivers/ide/cs5535.c | 5 +--
- drivers/ide/hpt366.c | 42 +++++++++++++-------------
- drivers/ide/it8213.c | 4 +-
- drivers/ide/it821x.c | 10 +++---
- drivers/ide/jmicron.c | 4 +-
- drivers/ide/ns87415.c | 8 ++--
- drivers/ide/pdc202xx_new.c | 10 +++---
- drivers/ide/pdc202xx_old.c | 8 ++--
- drivers/ide/scc_pata.c | 20 +++++-------
- drivers/ide/serverworks.c | 4 +-
- drivers/ide/sgiioc4.c | 13 +++-----
- drivers/ide/sis5513.c | 10 +++---
- drivers/ide/sl82c105.c | 4 +-
- drivers/ide/triflex.c | 5 +--
- drivers/ide/trm290.c | 6 +--
- drivers/ide/via82cxxx.c | 8 ++--
- drivers/iio/accel/hid-sensor-accel-3d.c | 4 +-
- drivers/iio/adc/ad7266.c | 8 ++--
- drivers/iio/adc/ad7298.c | 6 +--
- drivers/iio/adc/ad7476.c | 6 +--
- drivers/iio/adc/ad7791.c | 10 +++---
- drivers/iio/adc/ad7887.c | 6 +--
- drivers/iio/adc/at91_adc.c | 6 +--
- drivers/iio/adc/lp8788_adc.c | 6 +--
- drivers/iio/adc/max1363.c | 10 +++---
- drivers/iio/amplifiers/ad8366.c | 6 +--
- drivers/iio/dac/ad5064.c | 18 +++++------
- drivers/iio/dac/ad5360.c | 8 ++--
- drivers/iio/dac/ad5380.c | 22 ++++++-------
- drivers/iio/dac/ad5421.c | 6 +--
- drivers/iio/dac/ad5446.c | 18 +++++------
- drivers/iio/dac/ad5449.c | 6 +--
- drivers/iio/dac/ad5504.c | 6 +--
- drivers/iio/dac/ad5624r_spi.c | 6 +--
- drivers/iio/dac/ad5686.c | 6 +--
- drivers/iio/dac/ad5755.c | 16 ++++-----
- drivers/iio/dac/ad5764.c | 6 +--
- drivers/iio/dac/ad5791.c | 6 +--
- drivers/iio/dac/max517.c | 6 +--
- drivers/iio/dac/mcp4725.c | 8 ++--
- drivers/iio/frequency/ad9523.c | 6 +--
- drivers/iio/frequency/adf4350.c | 6 +--
- drivers/iio/gyro/hid-sensor-gyro-3d.c | 4 +-
- drivers/iio/light/adjd_s311.c | 8 ++--
- drivers/iio/light/hid-sensor-als.c | 4 +-
- drivers/iio/light/lm3533-als.c | 19 +++++------
- drivers/iio/light/vcnl4000.c | 8 ++--
- drivers/iio/magnetometer/hid-sensor-magn-3d.c | 4 +-
- drivers/memory/tegra20-mc.c | 4 +-
- drivers/memory/tegra30-mc.c | 4 +-
- drivers/scsi/NCR_Q720.c | 2 -
- drivers/scsi/a100u2w.c | 8 ++--
- drivers/scsi/aacraid/linit.c | 15 ++-------
- drivers/scsi/aic94xx/aic94xx_init.c | 23 ++++++--------
- drivers/scsi/arm/cumana_2.c | 8 ++--
- drivers/scsi/bvme6000_scsi.c | 6 +--
- drivers/scsi/ips.c | 10 +++---
- drivers/scsi/jazz_esp.c | 6 +--
- drivers/scsi/lasi700.c | 2 -
- drivers/scsi/mac_esp.c | 6 +--
- drivers/scsi/sni_53c710.c | 4 +-
- drivers/scsi/stex.c | 5 +--
- drivers/scsi/sun_esp.c | 30 ++++++++----------
- drivers/scsi/zorro7xx.c | 12 +++----
- 67 files changed, 288 insertions(+), 305 deletions(-)
-
---- a/drivers/ide/aec62xx.c
-+++ b/drivers/ide/aec62xx.c
-@@ -181,7 +181,7 @@ static const struct ide_port_ops atp86x_
- .cable_detect = atp86x_cable_detect,
- };
-
--static const struct ide_port_info aec62xx_chipsets[] __devinitconst = {
-+static const struct ide_port_info aec62xx_chipsets[] = {
- { /* 0: AEC6210 */
- .name = DRV_NAME,
- .init_chipset = init_chipset_aec62xx,
-@@ -251,7 +251,7 @@ static const struct ide_port_info aec62x
- * chips, pass a local copy of 'struct ide_port_info' down the call chain.
- */
-
--static int __devinit aec62xx_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int aec62xx_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- const struct chipset_bus_clock_list_entry *bus_clock;
- struct ide_port_info d;
-@@ -287,7 +287,7 @@ static int __devinit aec62xx_init_one(st
- return err;
- }
-
--static void __devexit aec62xx_remove(struct pci_dev *dev)
-+static void aec62xx_remove(struct pci_dev *dev)
- {
- ide_pci_remove(dev);
- pci_disable_device(dev);
-@@ -307,7 +307,7 @@ static struct pci_driver aec62xx_pci_dri
- .name = "AEC62xx_IDE",
- .id_table = aec62xx_pci_tbl,
- .probe = aec62xx_init_one,
-- .remove = __devexit_p(aec62xx_remove),
-+ .remove = aec62xx_remove,
- .suspend = ide_pci_suspend,
- .resume = ide_pci_resume,
- };
---- a/drivers/ide/alim15x3.c
-+++ b/drivers/ide/alim15x3.c
-@@ -415,7 +415,7 @@ static u8 ali_cable_detect(ide_hwif_t *h
- * Sparc systems.
- */
-
--static void __devinit init_hwif_ali15x3 (ide_hwif_t *hwif)
-+static void init_hwif_ali15x3(ide_hwif_t *hwif)
- {
- u8 ideic, inmir;
- s8 irq_routing_table[] = { -1, 9, 3, 10, 4, 5, 7, 6,
-@@ -464,8 +464,7 @@ static void __devinit init_hwif_ali15x3
- * Set up the DMA functionality on the ALi 15x3.
- */
-
--static int __devinit init_dma_ali15x3(ide_hwif_t *hwif,
-- const struct ide_port_info *d)
-+static int init_dma_ali15x3(ide_hwif_t *hwif, const struct ide_port_info *d)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
- unsigned long base = ide_pci_dma_base(hwif, d);
-@@ -512,7 +511,7 @@ static const struct ide_dma_ops ali_dma_
- .dma_sff_read_status = ide_dma_sff_read_status,
- };
-
--static const struct ide_port_info ali15x3_chipset __devinitconst = {
-+static const struct ide_port_info ali15x3_chipset = {
- .name = DRV_NAME,
- .init_chipset = init_chipset_ali15x3,
- .init_hwif = init_hwif_ali15x3,
-@@ -532,7 +531,8 @@ static const struct ide_port_info ali15x
- * hot plug layer.
- */
-
--static int __devinit alim15x3_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int alim15x3_init_one(struct pci_dev *dev,
-+ const struct pci_device_id *id)
- {
- struct ide_port_info d = ali15x3_chipset;
- u8 rev = dev->revision, idx = id->driver_data;
---- a/drivers/ide/cs5520.c
-+++ b/drivers/ide/cs5520.c
-@@ -94,7 +94,7 @@ static const struct ide_port_ops cs5520_
- .set_dma_mode = cs5520_set_dma_mode,
- };
-
--static const struct ide_port_info cyrix_chipset __devinitconst = {
-+static const struct ide_port_info cyrix_chipset = {
- .name = DRV_NAME,
- .enablebits = { { 0x60, 0x01, 0x01 }, { 0x60, 0x02, 0x02 } },
- .port_ops = &cs5520_port_ops,
-@@ -108,7 +108,7 @@ static const struct ide_port_info cyrix_
- * work longhand.
- */
-
--static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int cs5520_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- const struct ide_port_info *d = &cyrix_chipset;
- struct ide_hw hw[2], *hws[] = { NULL, NULL };
---- a/drivers/ide/cs5535.c
-+++ b/drivers/ide/cs5535.c
-@@ -170,7 +170,7 @@ static const struct ide_port_ops cs5535_
- .cable_detect = cs5535_cable_detect,
- };
-
--static const struct ide_port_info cs5535_chipset __devinitconst = {
-+static const struct ide_port_info cs5535_chipset = {
- .name = DRV_NAME,
- .port_ops = &cs5535_port_ops,
- .host_flags = IDE_HFLAG_SINGLE | IDE_HFLAG_POST_SET_MODE,
-@@ -179,8 +179,7 @@ static const struct ide_port_info cs5535
- .udma_mask = ATA_UDMA4,
- };
-
--static int __devinit cs5535_init_one(struct pci_dev *dev,
-- const struct pci_device_id *id)
-+static int cs5535_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- return ide_pci_init_one(dev, &cs5535_chipset, NULL);
- }
---- a/drivers/ide/hpt366.c
-+++ b/drivers/ide/hpt366.c
-@@ -443,7 +443,7 @@ static struct hpt_timings hpt37x_timings
- }
- };
-
--static const struct hpt_info hpt36x __devinitconst = {
-+static const struct hpt_info hpt36x = {
- .chip_name = "HPT36x",
- .chip_type = HPT36x,
- .udma_mask = HPT366_ALLOW_ATA66_3 ? (HPT366_ALLOW_ATA66_4 ? ATA_UDMA4 : ATA_UDMA3) : ATA_UDMA2,
-@@ -451,7 +451,7 @@ static const struct hpt_info hpt36x __de
- .timings = &hpt36x_timings
- };
-
--static const struct hpt_info hpt370 __devinitconst = {
-+static const struct hpt_info hpt370 = {
- .chip_name = "HPT370",
- .chip_type = HPT370,
- .udma_mask = HPT370_ALLOW_ATA100_5 ? ATA_UDMA5 : ATA_UDMA4,
-@@ -459,7 +459,7 @@ static const struct hpt_info hpt370 __de
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt370a __devinitconst = {
-+static const struct hpt_info hpt370a = {
- .chip_name = "HPT370A",
- .chip_type = HPT370A,
- .udma_mask = HPT370_ALLOW_ATA100_5 ? ATA_UDMA5 : ATA_UDMA4,
-@@ -467,7 +467,7 @@ static const struct hpt_info hpt370a __d
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt374 __devinitconst = {
-+static const struct hpt_info hpt374 = {
- .chip_name = "HPT374",
- .chip_type = HPT374,
- .udma_mask = ATA_UDMA5,
-@@ -475,7 +475,7 @@ static const struct hpt_info hpt374 __de
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt372 __devinitconst = {
-+static const struct hpt_info hpt372 = {
- .chip_name = "HPT372",
- .chip_type = HPT372,
- .udma_mask = HPT372_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
-@@ -483,7 +483,7 @@ static const struct hpt_info hpt372 __de
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt372a __devinitconst = {
-+static const struct hpt_info hpt372a = {
- .chip_name = "HPT372A",
- .chip_type = HPT372A,
- .udma_mask = HPT372_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
-@@ -491,7 +491,7 @@ static const struct hpt_info hpt372a __d
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt302 __devinitconst = {
-+static const struct hpt_info hpt302 = {
- .chip_name = "HPT302",
- .chip_type = HPT302,
- .udma_mask = HPT302_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
-@@ -499,7 +499,7 @@ static const struct hpt_info hpt302 __de
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt371 __devinitconst = {
-+static const struct hpt_info hpt371 = {
- .chip_name = "HPT371",
- .chip_type = HPT371,
- .udma_mask = HPT371_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
-@@ -507,7 +507,7 @@ static const struct hpt_info hpt371 __de
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt372n __devinitconst = {
-+static const struct hpt_info hpt372n = {
- .chip_name = "HPT372N",
- .chip_type = HPT372N,
- .udma_mask = HPT372_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
-@@ -515,7 +515,7 @@ static const struct hpt_info hpt372n __d
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt302n __devinitconst = {
-+static const struct hpt_info hpt302n = {
- .chip_name = "HPT302N",
- .chip_type = HPT302N,
- .udma_mask = HPT302_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
-@@ -523,7 +523,7 @@ static const struct hpt_info hpt302n __d
- .timings = &hpt37x_timings
- };
-
--static const struct hpt_info hpt371n __devinitconst = {
-+static const struct hpt_info hpt371n = {
- .chip_name = "HPT371N",
- .chip_type = HPT371N,
- .udma_mask = HPT371_ALLOW_ATA133_6 ? ATA_UDMA6 : ATA_UDMA5,
-@@ -1197,7 +1197,7 @@ static u8 hpt3xx_cable_detect(ide_hwif_t
- return (scr1 & ata66) ? ATA_CBL_PATA40 : ATA_CBL_PATA80;
- }
-
--static void __devinit init_hwif_hpt366(ide_hwif_t *hwif)
-+static void init_hwif_hpt366(ide_hwif_t *hwif)
- {
- struct hpt_info *info = hpt3xx_get_info(hwif->dev);
- u8 chip_type = info->chip_type;
-@@ -1221,7 +1221,7 @@ static void __devinit init_hwif_hpt366(i
- }
- }
-
--static int __devinit init_dma_hpt366(ide_hwif_t *hwif,
-+static int init_dma_hpt366(ide_hwif_t *hwif,
- const struct ide_port_info *d)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
-@@ -1265,7 +1265,7 @@ static int __devinit init_dma_hpt366(ide
- return 0;
- }
-
--static void __devinit hpt374_init(struct pci_dev *dev, struct pci_dev *dev2)
-+static void hpt374_init(struct pci_dev *dev, struct pci_dev *dev2)
- {
- if (dev2->irq != dev->irq) {
- /* FIXME: we need a core pci_set_interrupt() */
-@@ -1275,7 +1275,7 @@ static void __devinit hpt374_init(struct
- }
- }
-
--static void __devinit hpt371_init(struct pci_dev *dev)
-+static void hpt371_init(struct pci_dev *dev)
- {
- u8 mcr1 = 0;
-
-@@ -1290,7 +1290,7 @@ static void __devinit hpt371_init(struct
- pci_write_config_byte(dev, 0x50, mcr1 & ~0x04);
- }
-
--static int __devinit hpt36x_init(struct pci_dev *dev, struct pci_dev *dev2)
-+static int hpt36x_init(struct pci_dev *dev, struct pci_dev *dev2)
- {
- u8 mcr1 = 0, pin1 = 0, pin2 = 0;
-
-@@ -1361,7 +1361,7 @@ static const struct ide_dma_ops hpt36x_d
- .dma_sff_read_status = ide_dma_sff_read_status,
- };
-
--static const struct ide_port_info hpt366_chipsets[] __devinitconst = {
-+static const struct ide_port_info hpt366_chipsets[] = {
- { /* 0: HPT36x */
- .name = DRV_NAME,
- .init_chipset = init_chipset_hpt366,
-@@ -1402,7 +1402,7 @@ static const struct ide_port_info hpt366
- * Called when the PCI registration layer (or the IDE initialization)
- * finds a device matching our IDE device tables.
- */
--static int __devinit hpt366_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int hpt366_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- const struct hpt_info *info = NULL;
- struct hpt_info *dyn_info;
-@@ -1499,7 +1499,7 @@ static int __devinit hpt366_init_one(str
- return ret;
- }
-
--static void __devexit hpt366_remove(struct pci_dev *dev)
-+static void hpt366_remove(struct pci_dev *dev)
- {
- struct ide_host *host = pci_get_drvdata(dev);
- struct ide_info *info = host->host_priv;
-@@ -1510,7 +1510,7 @@ static void __devexit hpt366_remove(stru
- kfree(info);
- }
-
--static const struct pci_device_id hpt366_pci_tbl[] __devinitconst = {
-+static const struct pci_device_id hpt366_pci_tbl[] = {
- { PCI_VDEVICE(TTI, PCI_DEVICE_ID_TTI_HPT366), 0 },
- { PCI_VDEVICE(TTI, PCI_DEVICE_ID_TTI_HPT372), 1 },
- { PCI_VDEVICE(TTI, PCI_DEVICE_ID_TTI_HPT302), 2 },
-@@ -1525,7 +1525,7 @@ static struct pci_driver hpt366_pci_driv
- .name = "HPT366_IDE",
- .id_table = hpt366_pci_tbl,
- .probe = hpt366_init_one,
-- .remove = __devexit_p(hpt366_remove),
-+ .remove = hpt366_remove,
- .suspend = ide_pci_suspend,
- .resume = ide_pci_resume,
- };
---- a/drivers/ide/it8213.c
-+++ b/drivers/ide/it8213.c
-@@ -156,7 +156,7 @@ static const struct ide_port_ops it8213_
- .cable_detect = it8213_cable_detect,
- };
-
--static const struct ide_port_info it8213_chipset __devinitconst = {
-+static const struct ide_port_info it8213_chipset = {
- .name = DRV_NAME,
- .enablebits = { {0x41, 0x80, 0x80} },
- .port_ops = &it8213_port_ops,
-@@ -177,7 +177,7 @@ static const struct ide_port_info it8213
- * standard helper functions to do almost all the work for us.
- */
-
--static int __devinit it8213_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int it8213_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- return ide_pci_init_one(dev, &it8213_chipset, NULL);
- }
---- a/drivers/ide/it821x.c
-+++ b/drivers/ide/it821x.c
-@@ -528,7 +528,7 @@ static struct ide_dma_ops it821x_pass_th
- * ide DMA handlers appropriately
- */
-
--static void __devinit init_hwif_it821x(ide_hwif_t *hwif)
-+static void init_hwif_it821x(ide_hwif_t *hwif)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
- struct ide_host *host = pci_get_drvdata(dev);
-@@ -630,7 +630,7 @@ static const struct ide_port_ops it821x_
- .cable_detect = it821x_cable_detect,
- };
-
--static const struct ide_port_info it821x_chipset __devinitconst = {
-+static const struct ide_port_info it821x_chipset = {
- .name = DRV_NAME,
- .init_chipset = init_chipset_it821x,
- .init_hwif = init_hwif_it821x,
-@@ -647,7 +647,7 @@ static const struct ide_port_info it821x
- * We then use the IDE PCI generic helper to do most of the work.
- */
-
--static int __devinit it821x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int it821x_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- struct it821x_dev *itdevs;
- int rc;
-@@ -667,7 +667,7 @@ static int __devinit it821x_init_one(str
- return rc;
- }
-
--static void __devexit it821x_remove(struct pci_dev *dev)
-+static void it821x_remove(struct pci_dev *dev)
- {
- struct ide_host *host = pci_get_drvdata(dev);
- struct it821x_dev *itdevs = host->host_priv;
-@@ -689,7 +689,7 @@ static struct pci_driver it821x_pci_driv
- .name = "ITE821x IDE",
- .id_table = it821x_pci_tbl,
- .probe = it821x_init_one,
-- .remove = __devexit_p(it821x_remove),
-+ .remove = it821x_remove,
- .suspend = ide_pci_suspend,
- .resume = ide_pci_resume,
- };
---- a/drivers/ide/jmicron.c
-+++ b/drivers/ide/jmicron.c
-@@ -102,7 +102,7 @@ static const struct ide_port_ops jmicron
- .cable_detect = jmicron_cable_detect,
- };
-
--static const struct ide_port_info jmicron_chipset __devinitconst = {
-+static const struct ide_port_info jmicron_chipset = {
- .name = DRV_NAME,
- .enablebits = { { 0x40, 0x01, 0x01 }, { 0x40, 0x10, 0x10 } },
- .port_ops = &jmicron_port_ops,
-@@ -120,7 +120,7 @@ static const struct ide_port_info jmicro
- * We then use the IDE PCI generic helper to do most of the work.
- */
-
--static int __devinit jmicron_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int jmicron_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- return ide_pci_init_one(dev, &jmicron_chipset, NULL);
- }
---- a/drivers/ide/ns87415.c
-+++ b/drivers/ide/ns87415.c
-@@ -96,7 +96,7 @@ static const struct ide_tp_ops superio_t
- .output_data = ide_output_data,
- };
-
--static void __devinit superio_init_iops(struct hwif_s *hwif)
-+static void superio_init_iops(struct hwif_s *hwif)
- {
- struct pci_dev *pdev = to_pci_dev(hwif->dev);
- u32 dma_stat;
-@@ -201,7 +201,7 @@ static int ns87415_dma_end(ide_drive_t *
- return (dma_stat & 7) != 4;
- }
-
--static void __devinit init_hwif_ns87415 (ide_hwif_t *hwif)
-+static void init_hwif_ns87415 (ide_hwif_t *hwif)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
- unsigned int ctrl, using_inta;
-@@ -293,7 +293,7 @@ static const struct ide_dma_ops ns87415_
- .dma_sff_read_status = superio_dma_sff_read_status,
- };
-
--static const struct ide_port_info ns87415_chipset __devinitconst = {
-+static const struct ide_port_info ns87415_chipset = {
- .name = DRV_NAME,
- .init_hwif = init_hwif_ns87415,
- .tp_ops = &ns87415_tp_ops,
-@@ -302,7 +302,7 @@ static const struct ide_port_info ns8741
- IDE_HFLAG_NO_ATAPI_DMA,
- };
-
--static int __devinit ns87415_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int ns87415_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- struct ide_port_info d = ns87415_chipset;
-
---- a/drivers/ide/pdc202xx_new.c
-+++ b/drivers/ide/pdc202xx_new.c
-@@ -422,7 +422,7 @@ static int init_chipset_pdcnew(struct pc
- return 0;
- }
-
--static struct pci_dev * __devinit pdc20270_get_dev2(struct pci_dev *dev)
-+static struct pci_dev *pdc20270_get_dev2(struct pci_dev *dev)
- {
- struct pci_dev *dev2;
-
-@@ -465,7 +465,7 @@ static const struct ide_port_ops pdcnew_
- .udma_mask = udma, \
- }
-
--static const struct ide_port_info pdcnew_chipsets[] __devinitconst = {
-+static const struct ide_port_info pdcnew_chipsets[] = {
- /* 0: PDC202{68,70} */ DECLARE_PDCNEW_DEV(ATA_UDMA5),
- /* 1: PDC202{69,71,75,76,77} */ DECLARE_PDCNEW_DEV(ATA_UDMA6),
- };
-@@ -479,7 +479,7 @@ static const struct ide_port_info pdcnew
- * finds a device matching our IDE device tables.
- */
-
--static int __devinit pdc202new_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int pdc202new_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- const struct ide_port_info *d = &pdcnew_chipsets[id->driver_data];
- struct pci_dev *bridge = dev->bus->self;
-@@ -514,7 +514,7 @@ static int __devinit pdc202new_init_one(
- return ide_pci_init_one(dev, d, NULL);
- }
-
--static void __devexit pdc202new_remove(struct pci_dev *dev)
-+static void pdc202new_remove(struct pci_dev *dev)
- {
- struct ide_host *host = pci_get_drvdata(dev);
- struct pci_dev *dev2 = host->dev[1] ? to_pci_dev(host->dev[1]) : NULL;
-@@ -539,7 +539,7 @@ static struct pci_driver pdc202new_pci_d
- .name = "Promise_IDE",
- .id_table = pdc202new_pci_tbl,
- .probe = pdc202new_init_one,
-- .remove = __devexit_p(pdc202new_remove),
-+ .remove = pdc202new_remove,
- .suspend = ide_pci_suspend,
- .resume = ide_pci_resume,
- };
---- a/drivers/ide/pdc202xx_old.c
-+++ b/drivers/ide/pdc202xx_old.c
-@@ -211,8 +211,7 @@ out:
- return 0;
- }
-
--static void __devinit pdc202ata4_fixup_irq(struct pci_dev *dev,
-- const char *name)
-+static void pdc202ata4_fixup_irq(struct pci_dev *dev, const char *name)
- {
- if ((dev->class >> 8) != PCI_CLASS_STORAGE_IDE) {
- u8 irq = 0, irq2 = 0;
-@@ -270,7 +269,7 @@ static const struct ide_dma_ops pdc2026x
- .max_sectors = sectors, \
- }
-
--static const struct ide_port_info pdc202xx_chipsets[] __devinitconst = {
-+static const struct ide_port_info pdc202xx_chipsets[] = {
- { /* 0: PDC20246 */
- .name = DRV_NAME,
- .init_chipset = init_chipset_pdc202xx,
-@@ -297,7 +296,8 @@ static const struct ide_port_info pdc202
- * finds a device matching our IDE device tables.
- */
-
--static int __devinit pdc202xx_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int pdc202xx_init_one(struct pci_dev *dev,
-+ const struct pci_device_id *id)
- {
- const struct ide_port_info *d;
- u8 idx = id->driver_data;
---- a/drivers/ide/scc_pata.c
-+++ b/drivers/ide/scc_pata.c
-@@ -585,8 +585,7 @@ static int scc_ide_setup_pci_device(stru
- * Perform the initial set up for this device.
- */
-
--static int __devinit init_setup_scc(struct pci_dev *dev,
-- const struct ide_port_info *d)
-+static int init_setup_scc(struct pci_dev *dev, const struct ide_port_info *d)
- {
- unsigned long ctl_base;
- unsigned long dma_base;
-@@ -718,7 +717,7 @@ static void scc_output_data(ide_drive_t
- *
- */
-
--static void __devinit init_mmio_iops_scc(ide_hwif_t *hwif)
-+static void init_mmio_iops_scc(ide_hwif_t *hwif)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
- struct scc_ports *ports = pci_get_drvdata(dev);
-@@ -738,7 +737,7 @@ static void __devinit init_mmio_iops_scc
- * and then do the MMIO setup.
- */
-
--static void __devinit init_iops_scc(ide_hwif_t *hwif)
-+static void init_iops_scc(ide_hwif_t *hwif)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
-
-@@ -748,8 +747,7 @@ static void __devinit init_iops_scc(ide_
- init_mmio_iops_scc(hwif);
- }
-
--static int __devinit scc_init_dma(ide_hwif_t *hwif,
-- const struct ide_port_info *d)
-+static int scc_init_dma(ide_hwif_t *hwif, const struct ide_port_info *d)
- {
- return ide_allocate_dma_engine(hwif);
- }
-@@ -768,7 +766,7 @@ static u8 scc_cable_detect(ide_hwif_t *h
- * ide DMA handlers appropriately.
- */
-
--static void __devinit init_hwif_scc(ide_hwif_t *hwif)
-+static void init_hwif_scc(ide_hwif_t *hwif)
- {
- /* PTERADD */
- out_be32((void __iomem *)(hwif->dma_base + 0x018), hwif->dmatable_dma);
-@@ -811,7 +809,7 @@ static const struct ide_dma_ops scc_dma_
- .dma_sff_read_status = scc_dma_sff_read_status,
- };
-
--static const struct ide_port_info scc_chipset __devinitconst = {
-+static const struct ide_port_info scc_chipset = {
- .name = "sccIDE",
- .init_iops = init_iops_scc,
- .init_dma = scc_init_dma,
-@@ -834,7 +832,7 @@ static const struct ide_port_info scc_ch
- * We then use the IDE PCI generic helper to do most of the work.
- */
-
--static int __devinit scc_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int scc_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- return init_setup_scc(dev, &scc_chipset);
- }
-@@ -846,7 +844,7 @@ static int __devinit scc_init_one(struct
- * Called by the PCI code when it removes an SCC PATA controller.
- */
-
--static void __devexit scc_remove(struct pci_dev *dev)
-+static void scc_remove(struct pci_dev *dev)
- {
- struct scc_ports *ports = pci_get_drvdata(dev);
- struct ide_host *host = ports->host;
-@@ -869,7 +867,7 @@ static struct pci_driver scc_pci_driver
- .name = "SCC IDE",
- .id_table = scc_pci_tbl,
- .probe = scc_init_one,
-- .remove = __devexit_p(scc_remove),
-+ .remove = scc_remove,
- };
-
- static int __init scc_ide_init(void)
---- a/drivers/ide/serverworks.c
-+++ b/drivers/ide/serverworks.c
-@@ -337,7 +337,7 @@ static const struct ide_port_ops svwks_p
- .cable_detect = svwks_cable_detect,
- };
-
--static const struct ide_port_info serverworks_chipsets[] __devinitconst = {
-+static const struct ide_port_info serverworks_chipsets[] = {
- { /* 0: OSB4 */
- .name = DRV_NAME,
- .init_chipset = init_chipset_svwks,
-@@ -391,7 +391,7 @@ static const struct ide_port_info server
- * finds a device matching our IDE device tables.
- */
-
--static int __devinit svwks_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int svwks_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- struct ide_port_info d;
- u8 idx = id->driver_data;
---- a/drivers/ide/sgiioc4.c
-+++ b/drivers/ide/sgiioc4.c
-@@ -307,8 +307,7 @@ static u8 sgiioc4_read_status(ide_hwif_t
- }
-
- /* Creates a DMA map for the scatter-gather list entries */
--static int __devinit ide_dma_sgiioc4(ide_hwif_t *hwif,
-- const struct ide_port_info *d)
-+static int ide_dma_sgiioc4(ide_hwif_t *hwif, const struct ide_port_info *d)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
- unsigned long dma_base = pci_resource_start(dev, 0) + IOC4_DMA_OFFSET;
-@@ -520,7 +519,7 @@ static const struct ide_dma_ops sgiioc4_
- .dma_lost_irq = sgiioc4_dma_lost_irq,
- };
-
--static const struct ide_port_info sgiioc4_port_info __devinitconst = {
-+static const struct ide_port_info sgiioc4_port_info = {
- .name = DRV_NAME,
- .chipset = ide_pci,
- .init_dma = ide_dma_sgiioc4,
-@@ -532,7 +531,7 @@ static const struct ide_port_info sgiioc
- .mwdma_mask = ATA_MWDMA2_ONLY,
- };
-
--static int __devinit sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
-+static int sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
- {
- unsigned long cmd_base, irqport;
- unsigned long bar0, cmd_phys_base, ctl;
-@@ -581,7 +580,7 @@ req_mem_rgn_err:
- return rc;
- }
-
--static unsigned int __devinit pci_init_sgiioc4(struct pci_dev *dev)
-+static unsigned int pci_init_sgiioc4(struct pci_dev *dev)
- {
- int ret;
-
-@@ -601,7 +600,7 @@ out:
- return ret;
- }
-
--int __devinit ioc4_ide_attach_one(struct ioc4_driver_data *idd)
-+int ioc4_ide_attach_one(struct ioc4_driver_data *idd)
- {
- /*
- * PCI-RT does not bring out IDE connection.
-@@ -613,7 +612,7 @@ int __devinit ioc4_ide_attach_one(struct
- return pci_init_sgiioc4(idd->idd_pdev);
- }
-
--static struct ioc4_submodule __devinitdata ioc4_ide_submodule = {
-+static struct ioc4_submodule ioc4_ide_submodule = {
- .is_name = "IOC4_ide",
- .is_owner = THIS_MODULE,
- .is_probe = ioc4_ide_attach_one,
---- a/drivers/ide/sis5513.c
-+++ b/drivers/ide/sis5513.c
-@@ -362,7 +362,7 @@ static u8 sis_ata133_udma_filter(ide_dri
- return (regdw & 0x08) ? ATA_UDMA6 : ATA_UDMA5;
- }
-
--static int __devinit sis_find_family(struct pci_dev *dev)
-+static int sis_find_family(struct pci_dev *dev)
- {
- struct pci_dev *host;
- int i = 0;
-@@ -563,7 +563,7 @@ static const struct ide_port_ops sis_ata
- .cable_detect = sis_cable_detect,
- };
-
--static const struct ide_port_info sis5513_chipset __devinitconst = {
-+static const struct ide_port_info sis5513_chipset = {
- .name = DRV_NAME,
- .init_chipset = init_chipset_sis5513,
- .enablebits = { {0x4a, 0x02, 0x02}, {0x4a, 0x04, 0x04} },
-@@ -572,7 +572,7 @@ static const struct ide_port_info sis551
- .mwdma_mask = ATA_MWDMA2,
- };
-
--static int __devinit sis5513_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int sis5513_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- struct ide_port_info d = sis5513_chipset;
- u8 udma_rates[] = { 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f };
-@@ -595,7 +595,7 @@ static int __devinit sis5513_init_one(st
- return ide_pci_init_one(dev, &d, NULL);
- }
-
--static void __devexit sis5513_remove(struct pci_dev *dev)
-+static void sis5513_remove(struct pci_dev *dev)
- {
- ide_pci_remove(dev);
- pci_disable_device(dev);
-@@ -613,7 +613,7 @@ static struct pci_driver sis5513_pci_dri
- .name = "SIS_IDE",
- .id_table = sis5513_pci_tbl,
- .probe = sis5513_init_one,
-- .remove = __devexit_p(sis5513_remove),
-+ .remove = sis5513_remove,
- .suspend = ide_pci_suspend,
- .resume = ide_pci_resume,
- };
---- a/drivers/ide/sl82c105.c
-+++ b/drivers/ide/sl82c105.c
-@@ -299,7 +299,7 @@ static const struct ide_dma_ops sl82c105
- .dma_sff_read_status = ide_dma_sff_read_status,
- };
-
--static const struct ide_port_info sl82c105_chipset __devinitconst = {
-+static const struct ide_port_info sl82c105_chipset = {
- .name = DRV_NAME,
- .init_chipset = init_chipset_sl82c105,
- .enablebits = {{0x40,0x01,0x01}, {0x40,0x10,0x10}},
-@@ -313,7 +313,7 @@ static const struct ide_port_info sl82c1
- .mwdma_mask = ATA_MWDMA2,
- };
-
--static int __devinit sl82c105_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int sl82c105_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- struct ide_port_info d = sl82c105_chipset;
- u8 rev = sl82c105_bridge_revision(dev);
---- a/drivers/ide/triflex.c
-+++ b/drivers/ide/triflex.c
-@@ -92,7 +92,7 @@ static const struct ide_port_ops triflex
- .set_dma_mode = triflex_set_mode,
- };
-
--static const struct ide_port_info triflex_device __devinitconst = {
-+static const struct ide_port_info triflex_device = {
- .name = DRV_NAME,
- .enablebits = {{0x80, 0x01, 0x01}, {0x80, 0x02, 0x02}},
- .port_ops = &triflex_port_ops,
-@@ -101,8 +101,7 @@ static const struct ide_port_info trifle
- .mwdma_mask = ATA_MWDMA2,
- };
-
--static int __devinit triflex_init_one(struct pci_dev *dev,
-- const struct pci_device_id *id)
-+static int triflex_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- return ide_pci_init_one(dev, &triflex_device, NULL);
- }
---- a/drivers/ide/trm290.c
-+++ b/drivers/ide/trm290.c
-@@ -231,7 +231,7 @@ static void trm290_dma_host_set(ide_driv
- {
- }
-
--static void __devinit init_hwif_trm290(ide_hwif_t *hwif)
-+static void init_hwif_trm290(ide_hwif_t *hwif)
- {
- struct pci_dev *dev = to_pci_dev(hwif->dev);
- unsigned int cfg_base = pci_resource_start(dev, 4);
-@@ -324,7 +324,7 @@ static struct ide_dma_ops trm290_dma_ops
- .dma_check = trm290_dma_check,
- };
-
--static const struct ide_port_info trm290_chipset __devinitconst = {
-+static const struct ide_port_info trm290_chipset = {
- .name = DRV_NAME,
- .init_hwif = init_hwif_trm290,
- .tp_ops = &trm290_tp_ops,
-@@ -338,7 +338,7 @@ static const struct ide_port_info trm290
- IDE_HFLAG_NO_LBA48,
- };
-
--static int __devinit trm290_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int trm290_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- return ide_pci_init_one(dev, &trm290_chipset, NULL);
- }
---- a/drivers/ide/via82cxxx.c
-+++ b/drivers/ide/via82cxxx.c
-@@ -403,7 +403,7 @@ static const struct ide_port_ops via_por
- .cable_detect = via82cxxx_cable_detect,
- };
-
--static const struct ide_port_info via82cxxx_chipset __devinitconst = {
-+static const struct ide_port_info via82cxxx_chipset = {
- .name = DRV_NAME,
- .init_chipset = init_chipset_via82cxxx,
- .enablebits = { { 0x40, 0x02, 0x02 }, { 0x40, 0x01, 0x01 } },
-@@ -416,7 +416,7 @@ static const struct ide_port_info via82c
- .mwdma_mask = ATA_MWDMA2,
- };
-
--static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_id *id)
-+static int via_init_one(struct pci_dev *dev, const struct pci_device_id *id)
- {
- struct pci_dev *isa = NULL;
- struct via_isa_bridge *via_config;
-@@ -489,7 +489,7 @@ static int __devinit via_init_one(struct
- return rc;
- }
-
--static void __devexit via_remove(struct pci_dev *dev)
-+static void via_remove(struct pci_dev *dev)
- {
- struct ide_host *host = pci_get_drvdata(dev);
- struct via82cxxx_dev *vdev = host->host_priv;
-@@ -514,7 +514,7 @@ static struct pci_driver via_pci_driver
- .name = "VIA_IDE",
- .id_table = via_pci_tbl,
- .probe = via_init_one,
-- .remove = __devexit_p(via_remove),
-+ .remove = via_remove,
- .suspend = ide_pci_suspend,
- .resume = ide_pci_resume,
- };
---- a/drivers/iio/accel/hid-sensor-accel-3d.c
-+++ b/drivers/iio/accel/hid-sensor-accel-3d.c
-@@ -278,7 +278,7 @@ static int accel_3d_parse_report(struct
- }
-
- /* Function to initialize the processing for usage id */
--static int __devinit hid_accel_3d_probe(struct platform_device *pdev)
-+static int hid_accel_3d_probe(struct platform_device *pdev)
- {
- int ret = 0;
- static const char *name = "accel_3d";
-@@ -375,7 +375,7 @@ error_ret:
- }
-
- /* Function to deinitialize the processing for usage id */
--static int __devinit hid_accel_3d_remove(struct platform_device *pdev)
-+static int hid_accel_3d_remove(struct platform_device *pdev)
- {
- struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
- struct iio_dev *indio_dev = platform_get_drvdata(pdev);
---- a/drivers/iio/adc/ad7266.c
-+++ b/drivers/iio/adc/ad7266.c
-@@ -367,7 +367,7 @@ static const struct ad7266_chan_info ad7
- },
- };
-
--static void __devinit ad7266_init_channels(struct iio_dev *indio_dev)
-+static void ad7266_init_channels(struct iio_dev *indio_dev)
- {
- struct ad7266_state *st = iio_priv(indio_dev);
- bool is_differential, is_signed;
-@@ -391,7 +391,7 @@ static const char * const ad7266_gpio_la
- "AD0", "AD1", "AD2",
- };
-
--static int __devinit ad7266_probe(struct spi_device *spi)
-+static int ad7266_probe(struct spi_device *spi)
- {
- struct ad7266_platform_data *pdata = spi->dev.platform_data;
- struct iio_dev *indio_dev;
-@@ -494,7 +494,7 @@ error_put_reg:
- return ret;
- }
-
--static int __devexit ad7266_remove(struct spi_device *spi)
-+static int ad7266_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad7266_state *st = iio_priv(indio_dev);
-@@ -525,7 +525,7 @@ static struct spi_driver ad7266_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad7266_probe,
-- .remove = __devexit_p(ad7266_remove),
-+ .remove = ad7266_remove,
- .id_table = ad7266_id,
- };
- module_spi_driver(ad7266_driver);
---- a/drivers/iio/adc/ad7298.c
-+++ b/drivers/iio/adc/ad7298.c
-@@ -292,7 +292,7 @@ static const struct iio_info ad7298_info
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit ad7298_probe(struct spi_device *spi)
-+static int ad7298_probe(struct spi_device *spi)
- {
- struct ad7298_platform_data *pdata = spi->dev.platform_data;
- struct ad7298_state *st;
-@@ -370,7 +370,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad7298_remove(struct spi_device *spi)
-+static int ad7298_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad7298_state *st = iio_priv(indio_dev);
-@@ -398,7 +398,7 @@ static struct spi_driver ad7298_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad7298_probe,
-- .remove = __devexit_p(ad7298_remove),
-+ .remove = ad7298_remove,
- .id_table = ad7298_id,
- };
- module_spi_driver(ad7298_driver);
---- a/drivers/iio/adc/ad7476.c
-+++ b/drivers/iio/adc/ad7476.c
-@@ -207,7 +207,7 @@ static const struct iio_info ad7476_info
- .read_raw = &ad7476_read_raw,
- };
-
--static int __devinit ad7476_probe(struct spi_device *spi)
-+static int ad7476_probe(struct spi_device *spi)
- {
- struct ad7476_state *st;
- struct iio_dev *indio_dev;
-@@ -277,7 +277,7 @@ error_ret:
- return ret;
- }
-
--static int __devexit ad7476_remove(struct spi_device *spi)
-+static int ad7476_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad7476_state *st = iio_priv(indio_dev);
-@@ -322,7 +322,7 @@ static struct spi_driver ad7476_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad7476_probe,
-- .remove = __devexit_p(ad7476_remove),
-+ .remove = ad7476_remove,
- .id_table = ad7476_id,
- };
- module_spi_driver(ad7476_driver);
---- a/drivers/iio/adc/ad7791.c
-+++ b/drivers/iio/adc/ad7791.c
-@@ -325,8 +325,8 @@ static const struct iio_info ad7791_no_f
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit ad7791_setup(struct ad7791_state *st,
-- struct ad7791_platform_data *pdata)
-+static int ad7791_setup(struct ad7791_state *st,
-+ struct ad7791_platform_data *pdata)
- {
- /* Set to poweron-reset default values */
- st->mode = AD7791_MODE_BUFFER;
-@@ -349,7 +349,7 @@ static int __devinit ad7791_setup(struct
- st->mode);
- }
-
--static int __devinit ad7791_probe(struct spi_device *spi)
-+static int ad7791_probe(struct spi_device *spi)
- {
- struct ad7791_platform_data *pdata = spi->dev.platform_data;
- struct iio_dev *indio_dev;
-@@ -418,7 +418,7 @@ err_iio_free:
- return ret;
- }
-
--static int __devexit ad7791_remove(struct spi_device *spi)
-+static int ad7791_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad7791_state *st = iio_priv(indio_dev);
-@@ -450,7 +450,7 @@ static struct spi_driver ad7791_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad7791_probe,
-- .remove = __devexit_p(ad7791_remove),
-+ .remove = ad7791_remove,
- .id_table = ad7791_spi_ids,
- };
- module_spi_driver(ad7791_driver);
---- a/drivers/iio/adc/ad7887.c
-+++ b/drivers/iio/adc/ad7887.c
-@@ -233,7 +233,7 @@ static const struct iio_info ad7887_info
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit ad7887_probe(struct spi_device *spi)
-+static int ad7887_probe(struct spi_device *spi)
- {
- struct ad7887_platform_data *pdata = spi->dev.platform_data;
- struct ad7887_state *st;
-@@ -340,7 +340,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad7887_remove(struct spi_device *spi)
-+static int ad7887_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad7887_state *st = iio_priv(indio_dev);
-@@ -368,7 +368,7 @@ static struct spi_driver ad7887_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad7887_probe,
-- .remove = __devexit_p(ad7887_remove),
-+ .remove = ad7887_remove,
- .id_table = ad7887_id,
- };
- module_spi_driver(ad7887_driver);
---- a/drivers/iio/adc/at91_adc.c
-+++ b/drivers/iio/adc/at91_adc.c
-@@ -514,7 +514,7 @@ static const struct iio_info at91_adc_in
- .read_raw = &at91_adc_read_raw,
- };
-
--static int __devinit at91_adc_probe(struct platform_device *pdev)
-+static int at91_adc_probe(struct platform_device *pdev)
- {
- unsigned int prsc, mstrclk, ticks, adc_clk;
- int ret;
-@@ -678,7 +678,7 @@ error_ret:
- return ret;
- }
-
--static int __devexit at91_adc_remove(struct platform_device *pdev)
-+static int at91_adc_remove(struct platform_device *pdev)
- {
- struct iio_dev *idev = platform_get_drvdata(pdev);
- struct at91_adc_state *st = iio_priv(idev);
-@@ -702,7 +702,7 @@ MODULE_DEVICE_TABLE(of, at91_adc_dt_ids)
-
- static struct platform_driver at91_adc_driver = {
- .probe = at91_adc_probe,
-- .remove = __devexit_p(at91_adc_remove),
-+ .remove = at91_adc_remove,
- .driver = {
- .name = "at91_adc",
- .of_match_table = of_match_ptr(at91_adc_dt_ids),
---- a/drivers/iio/adc/lp8788_adc.c
-+++ b/drivers/iio/adc/lp8788_adc.c
-@@ -193,7 +193,7 @@ static inline void lp8788_iio_map_unregi
- iio_map_array_unregister(indio_dev, adc->map);
- }
-
--static int __devinit lp8788_adc_probe(struct platform_device *pdev)
-+static int lp8788_adc_probe(struct platform_device *pdev)
- {
- struct lp8788 *lp = dev_get_drvdata(pdev->dev.parent);
- struct iio_dev *indio_dev;
-@@ -236,7 +236,7 @@ err_iio_map:
- return ret;
- }
-
--static int __devexit lp8788_adc_remove(struct platform_device *pdev)
-+static int lp8788_adc_remove(struct platform_device *pdev)
- {
- struct iio_dev *indio_dev = platform_get_drvdata(pdev);
- struct lp8788_adc *adc = iio_priv(indio_dev);
-@@ -250,7 +250,7 @@ static int __devexit lp8788_adc_remove(s
-
- static struct platform_driver lp8788_adc_driver = {
- .probe = lp8788_adc_probe,
-- .remove = __devexit_p(lp8788_adc_remove),
-+ .remove = lp8788_adc_remove,
- .driver = {
- .name = LP8788_DEV_ADC,
- .owner = THIS_MODULE,
---- a/drivers/iio/adc/max1363.c
-+++ b/drivers/iio/adc/max1363.c
-@@ -1402,7 +1402,7 @@ static int max1363_initial_setup(struct
- return max1363_set_scan_mode(st);
- }
-
--static int __devinit max1363_alloc_scan_masks(struct iio_dev *indio_dev)
-+static int max1363_alloc_scan_masks(struct iio_dev *indio_dev)
- {
- struct max1363_state *st = iio_priv(indio_dev);
- unsigned long *masks;
-@@ -1525,8 +1525,8 @@ static void max1363_buffer_cleanup(struc
- iio_kfifo_free(indio_dev->buffer);
- }
-
--static int __devinit max1363_probe(struct i2c_client *client,
-- const struct i2c_device_id *id)
-+static int max1363_probe(struct i2c_client *client,
-+ const struct i2c_device_id *id)
- {
- int ret;
- struct max1363_state *st;
-@@ -1624,7 +1624,7 @@ error_out:
- return ret;
- }
-
--static int __devexit max1363_remove(struct i2c_client *client)
-+static int max1363_remove(struct i2c_client *client)
- {
- struct iio_dev *indio_dev = i2c_get_clientdata(client);
- struct max1363_state *st = iio_priv(indio_dev);
-@@ -1690,7 +1690,7 @@ static struct i2c_driver max1363_driver
- .name = "max1363",
- },
- .probe = max1363_probe,
-- .remove = __devexit_p(max1363_remove),
-+ .remove = max1363_remove,
- .id_table = max1363_id,
- };
- module_i2c_driver(max1363_driver);
---- a/drivers/iio/amplifiers/ad8366.c
-+++ b/drivers/iio/amplifiers/ad8366.c
-@@ -133,7 +133,7 @@ static const struct iio_chan_spec ad8366
- AD8366_CHAN(1),
- };
-
--static int __devinit ad8366_probe(struct spi_device *spi)
-+static int ad8366_probe(struct spi_device *spi)
- {
- struct iio_dev *indio_dev;
- struct ad8366_state *st;
-@@ -182,7 +182,7 @@ error_put_reg:
- return ret;
- }
-
--static int __devexit ad8366_remove(struct spi_device *spi)
-+static int ad8366_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad8366_state *st = iio_priv(indio_dev);
-@@ -211,7 +211,7 @@ static struct spi_driver ad8366_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad8366_probe,
-- .remove = __devexit_p(ad8366_remove),
-+ .remove = ad8366_remove,
- .id_table = ad8366_id,
- };
-
---- a/drivers/iio/dac/ad5064.c
-+++ b/drivers/iio/dac/ad5064.c
-@@ -424,8 +424,8 @@ static const char * const ad5064_vref_na
- return st->chip_info->shared_vref ? "vref" : ad5064_vref_names[vref];
- }
-
--static int __devinit ad5064_probe(struct device *dev, enum ad5064_type type,
-- const char *name, ad5064_write_func write)
-+static int ad5064_probe(struct device *dev, enum ad5064_type type,
-+ const char *name, ad5064_write_func write)
- {
- struct iio_dev *indio_dev;
- struct ad5064_state *st;
-@@ -495,7 +495,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad5064_remove(struct device *dev)
-+static int ad5064_remove(struct device *dev)
- {
- struct iio_dev *indio_dev = dev_get_drvdata(dev);
- struct ad5064_state *st = iio_priv(indio_dev);
-@@ -523,7 +523,7 @@ static int ad5064_spi_write(struct ad506
- return spi_write(spi, &st->data.spi, sizeof(st->data.spi));
- }
-
--static int __devinit ad5064_spi_probe(struct spi_device *spi)
-+static int ad5064_spi_probe(struct spi_device *spi)
- {
- const struct spi_device_id *id = spi_get_device_id(spi);
-
-@@ -531,7 +531,7 @@ static int __devinit ad5064_spi_probe(st
- ad5064_spi_write);
- }
-
--static int __devexit ad5064_spi_remove(struct spi_device *spi)
-+static int ad5064_spi_remove(struct spi_device *spi)
- {
- return ad5064_remove(&spi->dev);
- }
-@@ -563,7 +563,7 @@ static struct spi_driver ad5064_spi_driv
- .owner = THIS_MODULE,
- },
- .probe = ad5064_spi_probe,
-- .remove = __devexit_p(ad5064_spi_remove),
-+ .remove = ad5064_spi_remove,
- .id_table = ad5064_spi_ids,
- };
-
-@@ -596,14 +596,14 @@ static int ad5064_i2c_write(struct ad506
- return i2c_master_send(i2c, st->data.i2c, 3);
- }
-
--static int __devinit ad5064_i2c_probe(struct i2c_client *i2c,
-+static int ad5064_i2c_probe(struct i2c_client *i2c,
- const struct i2c_device_id *id)
- {
- return ad5064_probe(&i2c->dev, id->driver_data, id->name,
- ad5064_i2c_write);
- }
-
--static int __devexit ad5064_i2c_remove(struct i2c_client *i2c)
-+static int ad5064_i2c_remove(struct i2c_client *i2c)
- {
- return ad5064_remove(&i2c->dev);
- }
-@@ -625,7 +625,7 @@ static struct i2c_driver ad5064_i2c_driv
- .owner = THIS_MODULE,
- },
- .probe = ad5064_i2c_probe,
-- .remove = __devexit_p(ad5064_i2c_remove),
-+ .remove = ad5064_i2c_remove,
- .id_table = ad5064_i2c_ids,
- };
-
---- a/drivers/iio/dac/ad5360.c
-+++ b/drivers/iio/dac/ad5360.c
-@@ -433,7 +433,7 @@ static const char * const ad5360_vref_na
- "vref0", "vref1", "vref2"
- };
-
--static int __devinit ad5360_alloc_channels(struct iio_dev *indio_dev)
-+static int ad5360_alloc_channels(struct iio_dev *indio_dev)
- {
- struct ad5360_state *st = iio_priv(indio_dev);
- struct iio_chan_spec *channels;
-@@ -456,7 +456,7 @@ static int __devinit ad5360_alloc_channe
- return 0;
- }
-
--static int __devinit ad5360_probe(struct spi_device *spi)
-+static int ad5360_probe(struct spi_device *spi)
- {
- enum ad5360_type type = spi_get_device_id(spi)->driver_data;
- struct iio_dev *indio_dev;
-@@ -524,7 +524,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad5360_remove(struct spi_device *spi)
-+static int ad5360_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad5360_state *st = iio_priv(indio_dev);
-@@ -560,7 +560,7 @@ static struct spi_driver ad5360_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad5360_probe,
-- .remove = __devexit_p(ad5360_remove),
-+ .remove = ad5360_remove,
- .id_table = ad5360_ids,
- };
- module_spi_driver(ad5360_driver);
---- a/drivers/iio/dac/ad5380.c
-+++ b/drivers/iio/dac/ad5380.c
-@@ -338,7 +338,7 @@ static const struct ad5380_chip_info ad5
- },
- };
-
--static int __devinit ad5380_alloc_channels(struct iio_dev *indio_dev)
-+static int ad5380_alloc_channels(struct iio_dev *indio_dev)
- {
- struct ad5380_state *st = iio_priv(indio_dev);
- struct iio_chan_spec *channels;
-@@ -361,8 +361,8 @@ static int __devinit ad5380_alloc_channe
- return 0;
- }
-
--static int __devinit ad5380_probe(struct device *dev, struct regmap *regmap,
-- enum ad5380_type type, const char *name)
-+static int ad5380_probe(struct device *dev, struct regmap *regmap,
-+ enum ad5380_type type, const char *name)
- {
- struct iio_dev *indio_dev;
- struct ad5380_state *st;
-@@ -441,7 +441,7 @@ error_out:
- return ret;
- }
-
--static int __devexit ad5380_remove(struct device *dev)
-+static int ad5380_remove(struct device *dev)
- {
- struct iio_dev *indio_dev = dev_get_drvdata(dev);
- struct ad5380_state *st = iio_priv(indio_dev);
-@@ -478,7 +478,7 @@ static const struct regmap_config ad5380
-
- #if IS_ENABLED(CONFIG_SPI_MASTER)
-
--static int __devinit ad5380_spi_probe(struct spi_device *spi)
-+static int ad5380_spi_probe(struct spi_device *spi)
- {
- const struct spi_device_id *id = spi_get_device_id(spi);
- struct regmap *regmap;
-@@ -491,7 +491,7 @@ static int __devinit ad5380_spi_probe(st
- return ad5380_probe(&spi->dev, regmap, id->driver_data, id->name);
- }
-
--static int __devexit ad5380_spi_remove(struct spi_device *spi)
-+static int ad5380_spi_remove(struct spi_device *spi)
- {
- return ad5380_remove(&spi->dev);
- }
-@@ -523,7 +523,7 @@ static struct spi_driver ad5380_spi_driv
- .owner = THIS_MODULE,
- },
- .probe = ad5380_spi_probe,
-- .remove = __devexit_p(ad5380_spi_remove),
-+ .remove = ad5380_spi_remove,
- .id_table = ad5380_spi_ids,
- };
-
-@@ -552,8 +552,8 @@ static inline void ad5380_spi_unregister
-
- #if IS_ENABLED(CONFIG_I2C)
-
--static int __devinit ad5380_i2c_probe(struct i2c_client *i2c,
-- const struct i2c_device_id *id)
-+static int ad5380_i2c_probe(struct i2c_client *i2c,
-+ const struct i2c_device_id *id)
- {
- struct regmap *regmap;
-
-@@ -565,7 +565,7 @@ static int __devinit ad5380_i2c_probe(st
- return ad5380_probe(&i2c->dev, regmap, id->driver_data, id->name);
- }
-
--static int __devexit ad5380_i2c_remove(struct i2c_client *i2c)
-+static int ad5380_i2c_remove(struct i2c_client *i2c)
- {
- return ad5380_remove(&i2c->dev);
- }
-@@ -597,7 +597,7 @@ static struct i2c_driver ad5380_i2c_driv
- .owner = THIS_MODULE,
- },
- .probe = ad5380_i2c_probe,
-- .remove = __devexit_p(ad5380_i2c_remove),
-+ .remove = ad5380_i2c_remove,
- .id_table = ad5380_i2c_ids,
- };
-
---- a/drivers/iio/dac/ad5421.c
-+++ b/drivers/iio/dac/ad5421.c
-@@ -449,7 +449,7 @@ static const struct iio_info ad5421_info
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit ad5421_probe(struct spi_device *spi)
-+static int ad5421_probe(struct spi_device *spi)
- {
- struct ad5421_platform_data *pdata = dev_get_platdata(&spi->dev);
- struct iio_dev *indio_dev;
-@@ -516,7 +516,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad5421_remove(struct spi_device *spi)
-+static int ad5421_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
-
-@@ -534,7 +534,7 @@ static struct spi_driver ad5421_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad5421_probe,
-- .remove = __devexit_p(ad5421_remove),
-+ .remove = ad5421_remove,
- };
- module_spi_driver(ad5421_driver);
-
---- a/drivers/iio/dac/ad5446.c
-+++ b/drivers/iio/dac/ad5446.c
-@@ -212,8 +212,8 @@ static const struct iio_info ad5446_info
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit ad5446_probe(struct device *dev, const char *name,
-- const struct ad5446_chip_info *chip_info)
-+static int ad5446_probe(struct device *dev, const char *name,
-+ const struct ad5446_chip_info *chip_info)
- {
- struct ad5446_state *st;
- struct iio_dev *indio_dev;
-@@ -461,7 +461,7 @@ static const struct spi_device_id ad5446
- };
- MODULE_DEVICE_TABLE(spi, ad5446_spi_ids);
-
--static int __devinit ad5446_spi_probe(struct spi_device *spi)
-+static int ad5446_spi_probe(struct spi_device *spi)
- {
- const struct spi_device_id *id = spi_get_device_id(spi);
-
-@@ -469,7 +469,7 @@ static int __devinit ad5446_spi_probe(st
- &ad5446_spi_chip_info[id->driver_data]);
- }
-
--static int __devexit ad5446_spi_remove(struct spi_device *spi)
-+static int ad5446_spi_remove(struct spi_device *spi)
- {
- return ad5446_remove(&spi->dev);
- }
-@@ -480,7 +480,7 @@ static struct spi_driver ad5446_spi_driv
- .owner = THIS_MODULE,
- },
- .probe = ad5446_spi_probe,
-- .remove = __devexit_p(ad5446_spi_remove),
-+ .remove = ad5446_spi_remove,
- .id_table = ad5446_spi_ids,
- };
-
-@@ -539,14 +539,14 @@ static const struct ad5446_chip_info ad5
- },
- };
-
--static int __devinit ad5446_i2c_probe(struct i2c_client *i2c,
-- const struct i2c_device_id *id)
-+static int ad5446_i2c_probe(struct i2c_client *i2c,
-+ const struct i2c_device_id *id)
- {
- return ad5446_probe(&i2c->dev, id->name,
- &ad5446_i2c_chip_info[id->driver_data]);
- }
-
--static int __devexit ad5446_i2c_remove(struct i2c_client *i2c)
-+static int ad5446_i2c_remove(struct i2c_client *i2c)
- {
- return ad5446_remove(&i2c->dev);
- }
-@@ -568,7 +568,7 @@ static struct i2c_driver ad5446_i2c_driv
- .owner = THIS_MODULE,
- },
- .probe = ad5446_i2c_probe,
-- .remove = __devexit_p(ad5446_i2c_remove),
-+ .remove = ad5446_i2c_remove,
- .id_table = ad5446_i2c_ids,
- };
-
---- a/drivers/iio/dac/ad5449.c
-+++ b/drivers/iio/dac/ad5449.c
-@@ -266,7 +266,7 @@ static const char *ad5449_vref_name(stru
- return "VREFB";
- }
-
--static int __devinit ad5449_spi_probe(struct spi_device *spi)
-+static int ad5449_spi_probe(struct spi_device *spi)
- {
- struct ad5449_platform_data *pdata = spi->dev.platform_data;
- const struct spi_device_id *id = spi_get_device_id(spi);
-@@ -333,7 +333,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad5449_spi_remove(struct spi_device *spi)
-+static int ad5449_spi_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad5449 *st = iio_priv(indio_dev);
-@@ -366,7 +366,7 @@ static struct spi_driver ad5449_spi_driv
- .owner = THIS_MODULE,
- },
- .probe = ad5449_spi_probe,
-- .remove = __devexit_p(ad5449_spi_remove),
-+ .remove = ad5449_spi_remove,
- .id_table = ad5449_spi_ids,
- };
- module_spi_driver(ad5449_spi_driver);
---- a/drivers/iio/dac/ad5504.c
-+++ b/drivers/iio/dac/ad5504.c
-@@ -277,7 +277,7 @@ static const struct iio_chan_spec ad5504
- AD5504_CHANNEL(3),
- };
-
--static int __devinit ad5504_probe(struct spi_device *spi)
-+static int ad5504_probe(struct spi_device *spi)
- {
- struct ad5504_platform_data *pdata = spi->dev.platform_data;
- struct iio_dev *indio_dev;
-@@ -352,7 +352,7 @@ error_ret:
- return ret;
- }
-
--static int __devexit ad5504_remove(struct spi_device *spi)
-+static int ad5504_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad5504_state *st = iio_priv(indio_dev);
-@@ -383,7 +383,7 @@ static struct spi_driver ad5504_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad5504_probe,
-- .remove = __devexit_p(ad5504_remove),
-+ .remove = ad5504_remove,
- .id_table = ad5504_id,
- };
- module_spi_driver(ad5504_driver);
---- a/drivers/iio/dac/ad5624r_spi.c
-+++ b/drivers/iio/dac/ad5624r_spi.c
-@@ -220,7 +220,7 @@ static const struct ad5624r_chip_info ad
- },
- };
-
--static int __devinit ad5624r_probe(struct spi_device *spi)
-+static int ad5624r_probe(struct spi_device *spi)
- {
- struct ad5624r_state *st;
- struct iio_dev *indio_dev;
-@@ -282,7 +282,7 @@ error_ret:
- return ret;
- }
-
--static int __devexit ad5624r_remove(struct spi_device *spi)
-+static int ad5624r_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad5624r_state *st = iio_priv(indio_dev);
-@@ -314,7 +314,7 @@ static struct spi_driver ad5624r_driver
- .owner = THIS_MODULE,
- },
- .probe = ad5624r_probe,
-- .remove = __devexit_p(ad5624r_remove),
-+ .remove = ad5624r_remove,
- .id_table = ad5624r_id,
- };
- module_spi_driver(ad5624r_driver);
---- a/drivers/iio/dac/ad5686.c
-+++ b/drivers/iio/dac/ad5686.c
-@@ -313,7 +313,7 @@ static const struct ad5686_chip_info ad5
- };
-
-
--static int __devinit ad5686_probe(struct spi_device *spi)
-+static int ad5686_probe(struct spi_device *spi)
- {
- struct ad5686_state *st;
- struct iio_dev *indio_dev;
-@@ -379,7 +379,7 @@ error_put_reg:
- return ret;
- }
-
--static int __devexit ad5686_remove(struct spi_device *spi)
-+static int ad5686_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad5686_state *st = iio_priv(indio_dev);
-@@ -408,7 +408,7 @@ static struct spi_driver ad5686_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad5686_probe,
-- .remove = __devexit_p(ad5686_remove),
-+ .remove = ad5686_remove,
- .id_table = ad5686_id,
- };
- module_spi_driver(ad5686_driver);
---- a/drivers/iio/dac/ad5755.c
-+++ b/drivers/iio/dac/ad5755.c
-@@ -447,8 +447,8 @@ static bool ad5755_is_valid_mode(struct
- }
- }
-
--static int __devinit ad5755_setup_pdata(struct iio_dev *indio_dev,
-- const struct ad5755_platform_data *pdata)
-+static int ad5755_setup_pdata(struct iio_dev *indio_dev,
-+ const struct ad5755_platform_data *pdata)
- {
- struct ad5755_state *st = iio_priv(indio_dev);
- unsigned int val;
-@@ -503,7 +503,7 @@ static int __devinit ad5755_setup_pdata(
- return 0;
- }
-
--static bool __devinit ad5755_is_voltage_mode(enum ad5755_mode mode)
-+static bool ad5755_is_voltage_mode(enum ad5755_mode mode)
- {
- switch (mode) {
- case AD5755_MODE_VOLTAGE_0V_5V:
-@@ -516,8 +516,8 @@ static bool __devinit ad5755_is_voltage_
- }
- }
-
--static int __devinit ad5755_init_channels(struct iio_dev *indio_dev,
-- const struct ad5755_platform_data *pdata)
-+static int ad5755_init_channels(struct iio_dev *indio_dev,
-+ const struct ad5755_platform_data *pdata)
- {
- struct ad5755_state *st = iio_priv(indio_dev);
- struct iio_chan_spec *channels = st->channels;
-@@ -562,7 +562,7 @@ static const struct ad5755_platform_data
- },
- };
-
--static int __devinit ad5755_probe(struct spi_device *spi)
-+static int ad5755_probe(struct spi_device *spi)
- {
- enum ad5755_type type = spi_get_device_id(spi)->driver_data;
- const struct ad5755_platform_data *pdata = dev_get_platdata(&spi->dev);
-@@ -614,7 +614,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad5755_remove(struct spi_device *spi)
-+static int ad5755_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
-
-@@ -640,7 +640,7 @@ static struct spi_driver ad5755_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad5755_probe,
-- .remove = __devexit_p(ad5755_remove),
-+ .remove = ad5755_remove,
- .id_table = ad5755_id,
- };
- module_spi_driver(ad5755_driver);
---- a/drivers/iio/dac/ad5764.c
-+++ b/drivers/iio/dac/ad5764.c
-@@ -273,7 +273,7 @@ static const struct iio_info ad5764_info
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit ad5764_probe(struct spi_device *spi)
-+static int ad5764_probe(struct spi_device *spi)
- {
- enum ad5764_type type = spi_get_device_id(spi)->driver_data;
- struct iio_dev *indio_dev;
-@@ -340,7 +340,7 @@ error_free:
- return ret;
- }
-
--static int __devexit ad5764_remove(struct spi_device *spi)
-+static int ad5764_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad5764_state *st = iio_priv(indio_dev);
-@@ -372,7 +372,7 @@ static struct spi_driver ad5764_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad5764_probe,
-- .remove = __devexit_p(ad5764_remove),
-+ .remove = ad5764_remove,
- .id_table = ad5764_ids,
- };
- module_spi_driver(ad5764_driver);
---- a/drivers/iio/dac/ad5791.c
-+++ b/drivers/iio/dac/ad5791.c
-@@ -346,7 +346,7 @@ static const struct iio_info ad5791_info
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit ad5791_probe(struct spi_device *spi)
-+static int ad5791_probe(struct spi_device *spi)
- {
- struct ad5791_platform_data *pdata = spi->dev.platform_data;
- struct iio_dev *indio_dev;
-@@ -439,7 +439,7 @@ error_ret:
- return ret;
- }
-
--static int __devexit ad5791_remove(struct spi_device *spi)
-+static int ad5791_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad5791_state *st = iio_priv(indio_dev);
-@@ -475,7 +475,7 @@ static struct spi_driver ad5791_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad5791_probe,
-- .remove = __devexit_p(ad5791_remove),
-+ .remove = ad5791_remove,
- .id_table = ad5791_id,
- };
- module_spi_driver(ad5791_driver);
---- a/drivers/iio/dac/max517.c
-+++ b/drivers/iio/dac/max517.c
-@@ -156,7 +156,7 @@ static const struct iio_chan_spec max517
- MAX517_CHANNEL(1)
- };
-
--static int __devinit max517_probe(struct i2c_client *client,
-+static int max517_probe(struct i2c_client *client,
- const struct i2c_device_id *id)
- {
- struct max517_data *data;
-@@ -210,7 +210,7 @@ exit:
- return err;
- }
-
--static int __devexit max517_remove(struct i2c_client *client)
-+static int max517_remove(struct i2c_client *client)
- {
- iio_device_unregister(i2c_get_clientdata(client));
- iio_device_free(i2c_get_clientdata(client));
-@@ -232,7 +232,7 @@ static struct i2c_driver max517_driver =
- .pm = MAX517_PM_OPS,
- },
- .probe = max517_probe,
-- .remove = __devexit_p(max517_remove),
-+ .remove = max517_remove,
- .id_table = max517_id,
- };
- module_i2c_driver(max517_driver);
---- a/drivers/iio/dac/mcp4725.c
-+++ b/drivers/iio/dac/mcp4725.c
-@@ -141,8 +141,8 @@ static const struct iio_info mcp4725_inf
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit mcp4725_probe(struct i2c_client *client,
-- const struct i2c_device_id *id)
-+static int mcp4725_probe(struct i2c_client *client,
-+ const struct i2c_device_id *id)
- {
- struct mcp4725_data *data;
- struct iio_dev *indio_dev;
-@@ -195,7 +195,7 @@ exit:
- return err;
- }
-
--static int __devexit mcp4725_remove(struct i2c_client *client)
-+static int mcp4725_remove(struct i2c_client *client)
- {
- struct iio_dev *indio_dev = i2c_get_clientdata(client);
-
-@@ -217,7 +217,7 @@ static struct i2c_driver mcp4725_driver
- .pm = MCP4725_PM_OPS,
- },
- .probe = mcp4725_probe,
-- .remove = __devexit_p(mcp4725_remove),
-+ .remove = mcp4725_remove,
- .id_table = mcp4725_id,
- };
- module_i2c_driver(mcp4725_driver);
---- a/drivers/iio/frequency/ad9523.c
-+++ b/drivers/iio/frequency/ad9523.c
-@@ -959,7 +959,7 @@ static int ad9523_setup(struct iio_dev *
- return 0;
- }
-
--static int __devinit ad9523_probe(struct spi_device *spi)
-+static int ad9523_probe(struct spi_device *spi)
- {
- struct ad9523_platform_data *pdata = spi->dev.platform_data;
- struct iio_dev *indio_dev;
-@@ -1020,7 +1020,7 @@ error_put_reg:
- return ret;
- }
-
--static int __devexit ad9523_remove(struct spi_device *spi)
-+static int ad9523_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct ad9523_state *st = iio_priv(indio_dev);
-@@ -1049,7 +1049,7 @@ static struct spi_driver ad9523_driver =
- .owner = THIS_MODULE,
- },
- .probe = ad9523_probe,
-- .remove = __devexit_p(ad9523_remove),
-+ .remove = ad9523_remove,
- .id_table = ad9523_id,
- };
- module_spi_driver(ad9523_driver);
---- a/drivers/iio/frequency/adf4350.c
-+++ b/drivers/iio/frequency/adf4350.c
-@@ -355,7 +355,7 @@ static const struct iio_info adf4350_inf
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit adf4350_probe(struct spi_device *spi)
-+static int adf4350_probe(struct spi_device *spi)
- {
- struct adf4350_platform_data *pdata = spi->dev.platform_data;
- struct iio_dev *indio_dev;
-@@ -440,7 +440,7 @@ error_put_reg:
- return ret;
- }
-
--static int __devexit adf4350_remove(struct spi_device *spi)
-+static int adf4350_remove(struct spi_device *spi)
- {
- struct iio_dev *indio_dev = spi_get_drvdata(spi);
- struct adf4350_state *st = iio_priv(indio_dev);
-@@ -476,7 +476,7 @@ static struct spi_driver adf4350_driver
- .owner = THIS_MODULE,
- },
- .probe = adf4350_probe,
-- .remove = __devexit_p(adf4350_remove),
-+ .remove = adf4350_remove,
- .id_table = adf4350_id,
- };
- module_spi_driver(adf4350_driver);
---- a/drivers/iio/gyro/hid-sensor-gyro-3d.c
-+++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c
-@@ -278,7 +278,7 @@ static int gyro_3d_parse_report(struct p
- }
-
- /* Function to initialize the processing for usage id */
--static int __devinit hid_gyro_3d_probe(struct platform_device *pdev)
-+static int hid_gyro_3d_probe(struct platform_device *pdev)
- {
- int ret = 0;
- static const char *name = "gyro_3d";
-@@ -375,7 +375,7 @@ error_ret:
- }
-
- /* Function to deinitialize the processing for usage id */
--static int __devinit hid_gyro_3d_remove(struct platform_device *pdev)
-+static int hid_gyro_3d_remove(struct platform_device *pdev)
- {
- struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
- struct iio_dev *indio_dev = platform_get_drvdata(pdev);
---- a/drivers/iio/light/adjd_s311.c
-+++ b/drivers/iio/light/adjd_s311.c
-@@ -286,8 +286,8 @@ static const struct iio_info adjd_s311_i
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit adjd_s311_probe(struct i2c_client *client,
-- const struct i2c_device_id *id)
-+static int adjd_s311_probe(struct i2c_client *client,
-+ const struct i2c_device_id *id)
- {
- struct adjd_s311_data *data;
- struct iio_dev *indio_dev;
-@@ -330,7 +330,7 @@ exit:
- return err;
- }
-
--static int __devexit adjd_s311_remove(struct i2c_client *client)
-+static int adjd_s311_remove(struct i2c_client *client)
- {
- struct iio_dev *indio_dev = i2c_get_clientdata(client);
- struct adjd_s311_data *data = iio_priv(indio_dev);
-@@ -354,7 +354,7 @@ static struct i2c_driver adjd_s311_drive
- .name = ADJD_S311_DRV_NAME,
- },
- .probe = adjd_s311_probe,
-- .remove = __devexit_p(adjd_s311_remove),
-+ .remove = adjd_s311_remove,
- .id_table = adjd_s311_id,
- };
- module_i2c_driver(adjd_s311_driver);
---- a/drivers/iio/light/hid-sensor-als.c
-+++ b/drivers/iio/light/hid-sensor-als.c
-@@ -245,7 +245,7 @@ static int als_parse_report(struct platf
- }
-
- /* Function to initialize the processing for usage id */
--static int __devinit hid_als_probe(struct platform_device *pdev)
-+static int hid_als_probe(struct platform_device *pdev)
- {
- int ret = 0;
- static const char *name = "als";
-@@ -341,7 +341,7 @@ error_ret:
- }
-
- /* Function to deinitialize the processing for usage id */
--static int __devinit hid_als_remove(struct platform_device *pdev)
-+static int hid_als_remove(struct platform_device *pdev)
- {
- struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
- struct iio_dev *indio_dev = platform_get_drvdata(pdev);
---- a/drivers/iio/light/lm3533-als.c
-+++ b/drivers/iio/light/lm3533-als.c
-@@ -718,8 +718,7 @@ static struct attribute_group lm3533_als
- .attrs = lm3533_als_attributes
- };
-
--static int __devinit lm3533_als_set_input_mode(struct lm3533_als *als,
-- bool pwm_mode)
-+static int lm3533_als_set_input_mode(struct lm3533_als *als, bool pwm_mode)
- {
- u8 mask = LM3533_ALS_INPUT_MODE_MASK;
- u8 val;
-@@ -740,7 +739,7 @@ static int __devinit lm3533_als_set_inpu
- return 0;
- }
-
--static int __devinit lm3533_als_set_resistor(struct lm3533_als *als, u8 val)
-+static int lm3533_als_set_resistor(struct lm3533_als *als, u8 val)
- {
- int ret;
-
-@@ -756,8 +755,8 @@ static int __devinit lm3533_als_set_resi
- return 0;
- }
-
--static int __devinit lm3533_als_setup(struct lm3533_als *als,
-- struct lm3533_als_platform_data *pdata)
-+static int lm3533_als_setup(struct lm3533_als *als,
-+ struct lm3533_als_platform_data *pdata)
- {
- int ret;
-
-@@ -775,7 +774,7 @@ static int __devinit lm3533_als_setup(st
- return 0;
- }
-
--static int __devinit lm3533_als_setup_irq(struct lm3533_als *als, void *dev)
-+static int lm3533_als_setup_irq(struct lm3533_als *als, void *dev)
- {
- u8 mask = LM3533_ALS_INT_ENABLE_MASK;
- int ret;
-@@ -799,7 +798,7 @@ static int __devinit lm3533_als_setup_ir
- return 0;
- }
-
--static int __devinit lm3533_als_enable(struct lm3533_als *als)
-+static int lm3533_als_enable(struct lm3533_als *als)
- {
- u8 mask = LM3533_ALS_ENABLE_MASK;
- int ret;
-@@ -830,7 +829,7 @@ static const struct iio_info lm3533_als_
- .read_raw = &lm3533_als_read_raw,
- };
-
--static int __devinit lm3533_als_probe(struct platform_device *pdev)
-+static int lm3533_als_probe(struct platform_device *pdev)
- {
- struct lm3533 *lm3533;
- struct lm3533_als_platform_data *pdata;
-@@ -901,7 +900,7 @@ err_free_dev:
- return ret;
- }
-
--static int __devexit lm3533_als_remove(struct platform_device *pdev)
-+static int lm3533_als_remove(struct platform_device *pdev)
- {
- struct iio_dev *indio_dev = platform_get_drvdata(pdev);
- struct lm3533_als *als = iio_priv(indio_dev);
-@@ -922,7 +921,7 @@ static struct platform_driver lm3533_als
- .owner = THIS_MODULE,
- },
- .probe = lm3533_als_probe,
-- .remove = __devexit_p(lm3533_als_remove),
-+ .remove = lm3533_als_remove,
- };
- module_platform_driver(lm3533_als_driver);
-
---- a/drivers/iio/light/vcnl4000.c
-+++ b/drivers/iio/light/vcnl4000.c
-@@ -150,8 +150,8 @@ static const struct iio_info vcnl4000_in
- .driver_module = THIS_MODULE,
- };
-
--static int __devinit vcnl4000_probe(struct i2c_client *client,
-- const struct i2c_device_id *id)
-+static int vcnl4000_probe(struct i2c_client *client,
-+ const struct i2c_device_id *id)
- {
- struct vcnl4000_data *data;
- struct iio_dev *indio_dev;
-@@ -190,7 +190,7 @@ error_free_dev:
- return ret;
- }
-
--static int __devexit vcnl4000_remove(struct i2c_client *client)
-+static int vcnl4000_remove(struct i2c_client *client)
- {
- struct iio_dev *indio_dev = i2c_get_clientdata(client);
-
-@@ -206,7 +206,7 @@ static struct i2c_driver vcnl4000_driver
- .owner = THIS_MODULE,
- },
- .probe = vcnl4000_probe,
-- .remove = __devexit_p(vcnl4000_remove),
-+ .remove = vcnl4000_remove,
- .id_table = vcnl4000_id,
- };
-
---- a/drivers/iio/magnetometer/hid-sensor-magn-3d.c
-+++ b/drivers/iio/magnetometer/hid-sensor-magn-3d.c
-@@ -279,7 +279,7 @@ static int magn_3d_parse_report(struct p
- }
-
- /* Function to initialize the processing for usage id */
--static int __devinit hid_magn_3d_probe(struct platform_device *pdev)
-+static int hid_magn_3d_probe(struct platform_device *pdev)
- {
- int ret = 0;
- static char *name = "magn_3d";
-@@ -376,7 +376,7 @@ error_ret:
- }
-
- /* Function to deinitialize the processing for usage id */
--static int __devinit hid_magn_3d_remove(struct platform_device *pdev)
-+static int hid_magn_3d_remove(struct platform_device *pdev)
- {
- struct hid_sensor_hub_device *hsdev = pdev->dev.platform_data;
- struct iio_dev *indio_dev = platform_get_drvdata(pdev);
---- a/drivers/memory/tegra20-mc.c
-+++ b/drivers/memory/tegra20-mc.c
-@@ -177,7 +177,7 @@ static void tegra20_mc_decode(struct teg
- "carveout" : "trustzone") : "");
- }
-
--static const struct of_device_id tegra20_mc_of_match[] __devinitconst = {
-+static const struct of_device_id tegra20_mc_of_match[] = {
- { .compatible = "nvidia,tegra20-mc", },
- {},
- };
-@@ -198,7 +198,7 @@ static irqreturn_t tegra20_mc_isr(int ir
- return IRQ_HANDLED;
- }
-
--static int __devinit tegra20_mc_probe(struct platform_device *pdev)
-+static int tegra20_mc_probe(struct platform_device *pdev)
- {
- struct resource *irq;
- struct tegra20_mc *mc;
---- a/drivers/memory/tegra30-mc.c
-+++ b/drivers/memory/tegra30-mc.c
-@@ -295,7 +295,7 @@ static UNIVERSAL_DEV_PM_OPS(tegra30_mc_p
- tegra30_mc_suspend,
- tegra30_mc_resume, NULL);
-
--static const struct of_device_id tegra30_mc_of_match[] __devinitconst = {
-+static const struct of_device_id tegra30_mc_of_match[] = {
- { .compatible = "nvidia,tegra30-mc", },
- {},
- };
-@@ -316,7 +316,7 @@ static irqreturn_t tegra30_mc_isr(int ir
- return IRQ_HANDLED;
- }
-
--static int __devinit tegra30_mc_probe(struct platform_device *pdev)
-+static int tegra30_mc_probe(struct platform_device *pdev)
- {
- struct resource *irq;
- struct tegra30_mc *mc;
---- a/drivers/scsi/NCR_Q720.c
-+++ b/drivers/scsi/NCR_Q720.c
-@@ -351,7 +351,7 @@ static struct mca_driver NCR_Q720_driver
- .name = "NCR_Q720",
- .bus = &mca_bus_type,
- .probe = NCR_Q720_probe,
-- .remove = __devexit_p(NCR_Q720_remove),
-+ .remove = NCR_Q720_remove,
- },
- };
-
---- a/drivers/scsi/a100u2w.c
-+++ b/drivers/scsi/a100u2w.c
-@@ -1082,8 +1082,8 @@ static struct scsi_host_template inia100
- .use_clustering = ENABLE_CLUSTERING,
- };
-
--static int __devinit inia100_probe_one(struct pci_dev *pdev,
-- const struct pci_device_id *id)
-+static int inia100_probe_one(struct pci_dev *pdev,
-+ const struct pci_device_id *id)
- {
- struct Scsi_Host *shost;
- struct orc_host *host;
-@@ -1197,7 +1197,7 @@ out:
- return error;
- }
-
--static void __devexit inia100_remove_one(struct pci_dev *pdev)
-+static void inia100_remove_one(struct pci_dev *pdev)
- {
- struct Scsi_Host *shost = pci_get_drvdata(pdev);
- struct orc_host *host = (struct orc_host *)shost->hostdata;
-@@ -1224,7 +1224,7 @@ static struct pci_driver inia100_pci_dri
- .name = "inia100",
- .id_table = inia100_pci_tbl,
- .probe = inia100_probe_one,
-- .remove = __devexit_p(inia100_remove_one),
-+ .remove = inia100_remove_one,
- };
-
- static int __init inia100_init(void)
---- a/drivers/scsi/aacraid/linit.c
-+++ b/drivers/scsi/aacraid/linit.c
-@@ -88,13 +88,7 @@ char aac_driver_version[] = AAC_DRIVER_F
- *
- * Note: The last field is used to index into aac_drivers below.
- */
--#ifdef DECLARE_PCI_DEVICE_TABLE
--static DECLARE_PCI_DEVICE_TABLE(aac_pci_tbl) = {
--#elif defined(__devinitconst)
--static const struct pci_device_id aac_pci_tbl[] __devinitconst = {
--#else
--static const struct pci_device_id aac_pci_tbl[] __devinitconst = {
--#endif
-+static const struct pci_device_id aac_pci_tbl[] = {
- { 0x1028, 0x0001, 0x1028, 0x0001, 0, 0, 0 }, /* PERC 2/Si (Iguana/PERC2Si) */
- { 0x1028, 0x0002, 0x1028, 0x0002, 0, 0, 1 }, /* PERC 3/Di (Opal/PERC3Di) */
- { 0x1028, 0x0003, 0x1028, 0x0003, 0, 0, 2 }, /* PERC 3/Si (SlimFast/PERC3Si */
-@@ -1107,8 +1101,7 @@ static void __aac_shutdown(struct aac_de
- pci_disable_msi(aac->pdev);
- }
-
--static int __devinit aac_probe_one(struct pci_dev *pdev,
-- const struct pci_device_id *id)
-+static int aac_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
- {
- unsigned index = id->driver_data;
- struct Scsi_Host *shost;
-@@ -1310,7 +1303,7 @@ static void aac_shutdown(struct pci_dev
- __aac_shutdown((struct aac_dev *)shost->hostdata);
- }
-
--static void __devexit aac_remove_one(struct pci_dev *pdev)
-+static void aac_remove_one(struct pci_dev *pdev)
- {
- struct Scsi_Host *shost = pci_get_drvdata(pdev);
- struct aac_dev *aac = (struct aac_dev *)shost->hostdata;
-@@ -1341,7 +1334,7 @@ static struct pci_driver aac_pci_driver
- .name = AAC_DRIVERNAME,
- .id_table = aac_pci_tbl,
- .probe = aac_probe_one,
-- .remove = __devexit_p(aac_remove_one),
-+ .remove = aac_remove_one,
- .shutdown = aac_shutdown,
- };
-
---- a/drivers/scsi/aic94xx/aic94xx_init.c
-+++ b/drivers/scsi/aic94xx/aic94xx_init.c
-@@ -85,7 +85,7 @@ static struct scsi_host_template aic94xx
- .ioctl = sas_ioctl,
- };
-
--static int __devinit asd_map_memio(struct asd_ha_struct *asd_ha)
-+static int asd_map_memio(struct asd_ha_struct *asd_ha)
- {
- int err, i;
- struct asd_ha_addrspace *io_handle;
-@@ -146,7 +146,7 @@ static void asd_unmap_memio(struct asd_h
- pci_release_region(asd_ha->pcidev, 0);
- }
-
--static int __devinit asd_map_ioport(struct asd_ha_struct *asd_ha)
-+static int asd_map_ioport(struct asd_ha_struct *asd_ha)
- {
- int i = PCI_IOBAR_OFFSET, err;
- struct asd_ha_addrspace *io_handle = &asd_ha->io_handle[0];
-@@ -175,7 +175,7 @@ static void asd_unmap_ioport(struct asd_
- pci_release_region(asd_ha->pcidev, PCI_IOBAR_OFFSET);
- }
-
--static int __devinit asd_map_ha(struct asd_ha_struct *asd_ha)
-+static int asd_map_ha(struct asd_ha_struct *asd_ha)
- {
- int err;
- u16 cmd_reg;
-@@ -221,7 +221,7 @@ static const char *asd_dev_rev[30] = {
- [8] = "B0",
- };
-
--static int __devinit asd_common_setup(struct asd_ha_struct *asd_ha)
-+static int asd_common_setup(struct asd_ha_struct *asd_ha)
- {
- int err, i;
-
-@@ -257,7 +257,7 @@ Err:
- return err;
- }
-
--static int __devinit asd_aic9410_setup(struct asd_ha_struct *asd_ha)
-+static int asd_aic9410_setup(struct asd_ha_struct *asd_ha)
- {
- int err = asd_common_setup(asd_ha);
-
-@@ -272,7 +272,7 @@ static int __devinit asd_aic9410_setup(s
- return 0;
- }
-
--static int __devinit asd_aic9405_setup(struct asd_ha_struct *asd_ha)
-+static int asd_aic9405_setup(struct asd_ha_struct *asd_ha)
- {
- int err = asd_common_setup(asd_ha);
-
-@@ -531,7 +531,7 @@ static void asd_remove_dev_attrs(struct
- static const struct asd_pcidev_struct {
- const char * name;
- int (*setup)(struct asd_ha_struct *asd_ha);
--} asd_pcidev_data[] __devinitconst = {
-+} asd_pcidev_data[] = {
- /* Id 0 is used for dynamic ids. */
- { .name = "Adaptec AIC-94xx SAS/SATA Host Adapter",
- .setup = asd_aic9410_setup
-@@ -731,8 +731,7 @@ static int asd_unregister_sas_ha(struct
- return err;
- }
-
--static int __devinit asd_pci_probe(struct pci_dev *dev,
-- const struct pci_device_id *id)
-+static int asd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
- {
- const struct asd_pcidev_struct *asd_dev;
- unsigned asd_id = (unsigned) id->driver_data;
-@@ -924,7 +923,7 @@ static void asd_turn_off_leds(struct asd
- }
- }
-
--static void __devexit asd_pci_remove(struct pci_dev *dev)
-+static void asd_pci_remove(struct pci_dev *dev)
- {
- struct asd_ha_struct *asd_ha = pci_get_drvdata(dev);
-
-@@ -1012,7 +1011,7 @@ static struct sas_domain_function_templa
- .lldd_ata_set_dmamode = asd_set_dmamode,
- };
-
--static const struct pci_device_id aic94xx_pci_table[] __devinitconst = {
-+static const struct pci_device_id aic94xx_pci_table[] = {
- {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x410),0, 0, 1},
- {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x412),0, 0, 1},
- {PCI_DEVICE(PCI_VENDOR_ID_ADAPTEC2, 0x416),0, 0, 1},
-@@ -1031,7 +1030,7 @@ static struct pci_driver aic94xx_pci_dri
- .name = ASD_DRIVER_NAME,
- .id_table = aic94xx_pci_table,
- .probe = asd_pci_probe,
-- .remove = __devexit_p(asd_pci_remove),
-+ .remove = asd_pci_remove,
- };
-
- static int __init aic94xx_init(void)
---- a/drivers/scsi/arm/cumana_2.c
-+++ b/drivers/scsi/arm/cumana_2.c
-@@ -397,8 +397,8 @@ static struct scsi_host_template cumanas
- .proc_name = "cumanascsi2",
- };
-
--static int __devinit
--cumanascsi2_probe(struct expansion_card *ec, const struct ecard_id *id)
-+static int cumanascsi2_probe(struct expansion_card *ec,
-+ const struct ecard_id *id)
- {
- struct Scsi_Host *host;
- struct cumanascsi2_info *info;
-@@ -495,7 +495,7 @@ cumanascsi2_probe(struct expansion_card
- return ret;
- }
-
--static void __devexit cumanascsi2_remove(struct expansion_card *ec)
-+static void cumanascsi2_remove(struct expansion_card *ec)
- {
- struct Scsi_Host *host = ecard_get_drvdata(ec);
- struct cumanascsi2_info *info = (struct cumanascsi2_info *)host->hostdata;
-@@ -519,7 +519,7 @@ static const struct ecard_id cumanascsi2
-
- static struct ecard_driver cumanascsi2_driver = {
- .probe = cumanascsi2_probe,
-- .remove = __devexit_p(cumanascsi2_remove),
-+ .remove = cumanascsi2_remove,
- .id_table = cumanascsi2_cids,
- .drv = {
- .name = "cumanascsi2",
---- a/drivers/scsi/bvme6000_scsi.c
-+++ b/drivers/scsi/bvme6000_scsi.c
-@@ -34,7 +34,7 @@ static struct scsi_host_template bvme600
-
- static struct platform_device *bvme6000_scsi_device;
-
--static __devinit int
-+static int
- bvme6000_probe(struct platform_device *dev)
- {
- struct Scsi_Host *host;
-@@ -88,7 +88,7 @@ bvme6000_probe(struct platform_device *d
- return -ENODEV;
- }
-
--static __devexit int
-+static int
- bvme6000_device_remove(struct platform_device *dev)
- {
- struct Scsi_Host *host = platform_get_drvdata(dev);
-@@ -108,7 +108,7 @@ static struct platform_driver bvme6000_s
- .owner = THIS_MODULE,
- },
- .probe = bvme6000_probe,
-- .remove = __devexit_p(bvme6000_device_remove),
-+ .remove = bvme6000_device_remove,
- };
-
- static int __init bvme6000_scsi_init(void)
---- a/drivers/scsi/ips.c
-+++ b/drivers/scsi/ips.c
-@@ -389,14 +389,14 @@ MODULE_DEVICE_TABLE( pci, ips_pci_table
-
- static char ips_hot_plug_name[] = "ips";
-
--static int __devinit ips_insert_device(struct pci_dev *pci_dev, const struct pci_device_id *ent);
--static void __devexit ips_remove_device(struct pci_dev *pci_dev);
-+static int ips_insert_device(struct pci_dev *pci_dev, const struct pci_device_id *ent);
-+static void ips_remove_device(struct pci_dev *pci_dev);
-
- static struct pci_driver ips_pci_driver = {
- .name = ips_hot_plug_name,
- .id_table = ips_pci_table,
- .probe = ips_insert_device,
-- .remove = __devexit_p(ips_remove_device),
-+ .remove = ips_remove_device,
- };
-
-
-@@ -6837,7 +6837,7 @@ err_out_sh:
- /* Routine Description: */
- /* Remove one Adapter ( Hot Plugging ) */
- /*---------------------------------------------------------------------------*/
--static void __devexit
-+static void
- ips_remove_device(struct pci_dev *pci_dev)
- {
- struct Scsi_Host *sh = pci_get_drvdata(pci_dev);
-@@ -6898,7 +6898,7 @@ module_exit(ips_module_exit);
- /* Return Value: */
- /* 0 if Successful, else non-zero */
- /*---------------------------------------------------------------------------*/
--static int __devinit
-+static int
- ips_insert_device(struct pci_dev *pci_dev, const struct pci_device_id *ent)
- {
- int index = -1;
---- a/drivers/scsi/jazz_esp.c
-+++ b/drivers/scsi/jazz_esp.c
-@@ -129,7 +129,7 @@ static const struct esp_driver_ops jazz_
- .dma_error = jazz_esp_dma_error,
- };
-
--static int __devinit esp_jazz_probe(struct platform_device *dev)
-+static int esp_jazz_probe(struct platform_device *dev)
- {
- struct scsi_host_template *tpnt = &scsi_esp_template;
- struct Scsi_Host *host;
-@@ -201,7 +201,7 @@ fail:
- return err;
- }
-
--static int __devexit esp_jazz_remove(struct platform_device *dev)
-+static int esp_jazz_remove(struct platform_device *dev)
- {
- struct esp *esp = dev_get_drvdata(&dev->dev);
- unsigned int irq = esp->host->irq;
-@@ -223,7 +223,7 @@ MODULE_ALIAS("platform:jazz_esp");
-
- static struct platform_driver esp_jazz_driver = {
- .probe = esp_jazz_probe,
-- .remove = __devexit_p(esp_jazz_remove),
-+ .remove = esp_jazz_remove,
- .driver = {
- .name = "jazz_esp",
- .owner = THIS_MODULE,
---- a/drivers/scsi/lasi700.c
-+++ b/drivers/scsi/lasi700.c
-@@ -168,7 +168,7 @@ static struct parisc_driver lasi700_driv
- .name = "lasi_scsi",
- .id_table = lasi700_ids,
- .probe = lasi700_probe,
-- .remove = __devexit_p(lasi700_driver_remove),
-+ .remove = lasi700_driver_remove,
- };
-
- static int __init
---- a/drivers/scsi/mac_esp.c
-+++ b/drivers/scsi/mac_esp.c
-@@ -481,7 +481,7 @@ static struct esp_driver_ops mac_esp_ops
- .dma_error = mac_esp_dma_error,
- };
-
--static int __devinit esp_mac_probe(struct platform_device *dev)
-+static int esp_mac_probe(struct platform_device *dev)
- {
- struct scsi_host_template *tpnt = &scsi_esp_template;
- struct Scsi_Host *host;
-@@ -591,7 +591,7 @@ fail:
- return err;
- }
-
--static int __devexit esp_mac_remove(struct platform_device *dev)
-+static int esp_mac_remove(struct platform_device *dev)
- {
- struct mac_esp_priv *mep = platform_get_drvdata(dev);
- struct esp *esp = mep->esp;
-@@ -614,7 +614,7 @@ static int __devexit esp_mac_remove(stru
-
- static struct platform_driver esp_mac_driver = {
- .probe = esp_mac_probe,
-- .remove = __devexit_p(esp_mac_remove),
-+ .remove = esp_mac_remove,
- .driver = {
- .name = DRV_MODULE_NAME,
- .owner = THIS_MODULE,
---- a/drivers/scsi/sni_53c710.c
-+++ b/drivers/scsi/sni_53c710.c
-@@ -65,7 +65,7 @@ static struct scsi_host_template snirm71
- .module = THIS_MODULE,
- };
-
--static int __devinit snirm710_probe(struct platform_device *dev)
-+static int snirm710_probe(struct platform_device *dev)
- {
- unsigned long base;
- struct NCR_700_Host_Parameters *hostdata;
-@@ -134,7 +134,7 @@ static int __exit snirm710_driver_remove
-
- static struct platform_driver snirm710_driver = {
- .probe = snirm710_probe,
-- .remove = __devexit_p(snirm710_driver_remove),
-+ .remove = snirm710_driver_remove,
- .driver = {
- .name = "snirm_53c710",
- .owner = THIS_MODULE,
---- a/drivers/scsi/stex.c
-+++ b/drivers/scsi/stex.c
-@@ -1540,8 +1540,7 @@ static void stex_free_irq(struct st_hba
- pci_disable_msi(pdev);
- }
-
--static int __devinit
--stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
-+static int stex_probe(struct pci_dev *pdev, const struct pci_device_id *id)
- {
- struct st_hba *hba;
- struct Scsi_Host *host;
-@@ -1815,7 +1814,7 @@ static struct pci_driver stex_pci_driver
- .name = DRV_NAME,
- .id_table = stex_pci_tbl,
- .probe = stex_probe,
-- .remove = __devexit_p(stex_remove),
-+ .remove = stex_remove,
- .shutdown = stex_shutdown,
- };
-
---- a/drivers/scsi/sun_esp.c
-+++ b/drivers/scsi/sun_esp.c
-@@ -43,8 +43,7 @@ enum dvma_rev {
- dvmahme
- };
-
--static int __devinit esp_sbus_setup_dma(struct esp *esp,
-- struct platform_device *dma_of)
-+static int esp_sbus_setup_dma(struct esp *esp, struct platform_device *dma_of)
- {
- esp->dma = dma_of;
-
-@@ -79,7 +78,7 @@ static int __devinit esp_sbus_setup_dma(
-
- }
-
--static int __devinit esp_sbus_map_regs(struct esp *esp, int hme)
-+static int esp_sbus_map_regs(struct esp *esp, int hme)
- {
- struct platform_device *op = esp->dev;
- struct resource *res;
-@@ -99,7 +98,7 @@ static int __devinit esp_sbus_map_regs(s
- return 0;
- }
-
--static int __devinit esp_sbus_map_command_block(struct esp *esp)
-+static int esp_sbus_map_command_block(struct esp *esp)
- {
- struct platform_device *op = esp->dev;
-
-@@ -111,7 +110,7 @@ static int __devinit esp_sbus_map_comman
- return 0;
- }
-
--static int __devinit esp_sbus_register_irq(struct esp *esp)
-+static int esp_sbus_register_irq(struct esp *esp)
- {
- struct Scsi_Host *host = esp->host;
- struct platform_device *op = esp->dev;
-@@ -120,7 +119,7 @@ static int __devinit esp_sbus_register_i
- return request_irq(host->irq, scsi_esp_intr, IRQF_SHARED, "ESP", esp);
- }
-
--static void __devinit esp_get_scsi_id(struct esp *esp, struct platform_device *espdma)
-+static void esp_get_scsi_id(struct esp *esp, struct platform_device *espdma)
- {
- struct platform_device *op = esp->dev;
- struct device_node *dp;
-@@ -142,7 +141,7 @@ done:
- esp->scsi_id_mask = (1 << esp->scsi_id);
- }
-
--static void __devinit esp_get_differential(struct esp *esp)
-+static void esp_get_differential(struct esp *esp)
- {
- struct platform_device *op = esp->dev;
- struct device_node *dp;
-@@ -154,7 +153,7 @@ static void __devinit esp_get_differenti
- esp->flags &= ~ESP_FLAG_DIFFERENTIAL;
- }
-
--static void __devinit esp_get_clock_params(struct esp *esp)
-+static void esp_get_clock_params(struct esp *esp)
- {
- struct platform_device *op = esp->dev;
- struct device_node *bus_dp, *dp;
-@@ -170,7 +169,7 @@ static void __devinit esp_get_clock_para
- esp->cfreq = fmhz;
- }
-
--static void __devinit esp_get_bursts(struct esp *esp, struct platform_device *dma_of)
-+static void esp_get_bursts(struct esp *esp, struct platform_device *dma_of)
- {
- struct device_node *dma_dp = dma_of->dev.of_node;
- struct platform_device *op = esp->dev;
-@@ -195,7 +194,7 @@ static void __devinit esp_get_bursts(str
- esp->bursts = bursts;
- }
-
--static void __devinit esp_sbus_get_props(struct esp *esp, struct platform_device *espdma)
-+static void esp_sbus_get_props(struct esp *esp, struct platform_device *espdma)
- {
- esp_get_scsi_id(esp, espdma);
- esp_get_differential(esp);
-@@ -487,9 +486,8 @@ static const struct esp_driver_ops sbus_
- .dma_error = sbus_esp_dma_error,
- };
-
--static int __devinit esp_sbus_probe_one(struct platform_device *op,
-- struct platform_device *espdma,
-- int hme)
-+static int esp_sbus_probe_one(struct platform_device *op,
-+ struct platform_device *espdma, int hme)
- {
- struct scsi_host_template *tpnt = &scsi_esp_template;
- struct Scsi_Host *host;
-@@ -562,7 +560,7 @@ fail:
- return err;
- }
-
--static int __devinit esp_sbus_probe(struct platform_device *op)
-+static int esp_sbus_probe(struct platform_device *op)
- {
- struct device_node *dma_node = NULL;
- struct device_node *dp = op->dev.of_node;
-@@ -585,7 +583,7 @@ static int __devinit esp_sbus_probe(stru
- return esp_sbus_probe_one(op, dma_of, hme);
- }
-
--static int __devexit esp_sbus_remove(struct platform_device *op)
-+static int esp_sbus_remove(struct platform_device *op)
- {
- struct esp *esp = dev_get_drvdata(&op->dev);
- struct platform_device *dma_of = esp->dma;
-@@ -639,7 +637,7 @@ static struct platform_driver esp_sbus_d
- .of_match_table = esp_match,
- },
- .probe = esp_sbus_probe,
-- .remove = __devexit_p(esp_sbus_remove),
-+ .remove = esp_sbus_remove,
- };
-
- static int __init sunesp_init(void)
---- a/drivers/scsi/zorro7xx.c
-+++ b/drivers/scsi/zorro7xx.c
-@@ -38,7 +38,7 @@ static struct zorro_driver_data {
- const char *name;
- unsigned long offset;
- int absolute; /* offset is absolute address */
--} zorro7xx_driver_data[] __devinitdata = {
-+} zorro7xx_driver_data[] = {
- { .name = "PowerUP 603e+", .offset = 0xf40000, .absolute = 1 },
- { .name = "WarpEngine 40xx", .offset = 0x40000 },
- { .name = "A4091", .offset = 0x800000 },
-@@ -46,7 +46,7 @@ static struct zorro_driver_data {
- { 0 }
- };
-
--static struct zorro_device_id zorro7xx_zorro_tbl[] __devinitdata = {
-+static struct zorro_device_id zorro7xx_zorro_tbl[] = {
- {
- .id = ZORRO_PROD_PHASE5_BLIZZARD_603E_PLUS,
- .driver_data = (unsigned long)&zorro7xx_driver_data[0],
-@@ -71,8 +71,8 @@ static struct zorro_device_id zorro7xx_z
- };
- MODULE_DEVICE_TABLE(zorro, zorro7xx_zorro_tbl);
-
--static int __devinit zorro7xx_init_one(struct zorro_dev *z,
-- const struct zorro_device_id *ent)
-+static int zorro7xx_init_one(struct zorro_dev *z,
-+ const struct zorro_device_id *ent)
- {
- struct Scsi_Host *host;
- struct NCR_700_Host_Parameters *hostdata;
-@@ -150,7 +150,7 @@ static int __devinit zorro7xx_init_one(s
- return -ENODEV;
- }
-
--static __devexit void zorro7xx_remove_one(struct zorro_dev *z)
-+static void zorro7xx_remove_one(struct zorro_dev *z)
- {
- struct Scsi_Host *host = zorro_get_drvdata(z);
- struct NCR_700_Host_Parameters *hostdata = shost_priv(host);
-@@ -167,7 +167,7 @@ static struct zorro_driver zorro7xx_driv
- .name = "zorro7xx-scsi",
- .id_table = zorro7xx_zorro_tbl,
- .probe = zorro7xx_init_one,
-- .remove = __devexit_p(zorro7xx_remove_one),
-+ .remove = zorro7xx_remove_one,
- };
-
- static int __init zorro7xx_scsi_init(void)
diff --git a/series b/series
index beb1b93d5cd8d3..ddc316cbf379f6 100644
--- a/series
+++ b/series
@@ -4,12 +4,8 @@ usb-serial-ports-add-minor-and-port-number.patch
usb-serial-idr.patch
usb-serial-increase-the-number-of-devices-we-support.patch
0001-Simulate-fake-Fn-key-on-PS-2-keyboards-w-o-one-eg.-C.patch
-0001-kdbus-interprocess-message-router.patch
-dbus.patch
-dev_removal.patch
-time-don-t-inline-export_symbol-functions.patch
gregkh/gkh-version.patch
#####################################################################
diff --git a/time-don-t-inline-export_symbol-functions.patch b/time-don-t-inline-export_symbol-functions.patch
deleted file mode 100644
index b0dd9de32c6ad2..00000000000000
--- a/time-don-t-inline-export_symbol-functions.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-To: Thomas Gleixner <tglx@linutronix.de>
-Subject: [PATCH] time: don't inline EXPORT_SYMBOL functions
-
-How is the compiler even handling exported functions that are marked
-inline? Anyway, these shouldn't be inline because of that, so remove
-that marking.
-
-Based on a larger patch by Mark Charlebois to get LLVM to build the
-kernel.
-
-
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Cc: Mark Charlebois <mcharleb@qualcomm.com>
-Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
-Cc: Andrew Morton <akpm@linux-foundation.org>
-Cc: hank <pyu@redhat.com>
-Cc: John Stultz <john.stultz@linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- kernel/time.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/time.c b/kernel/time.c
-index ba744cf..8d8bebd9 100644
---- a/kernel/time.c
-+++ b/kernel/time.c
-@@ -232,7 +232,7 @@ EXPORT_SYMBOL(current_fs_time);
- * Avoid unnecessary multiplications/divisions in the
- * two most common HZ cases:
- */
--inline unsigned int jiffies_to_msecs(const unsigned long j)
-+unsigned int jiffies_to_msecs(const unsigned long j)
- {
- #if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ)
- return (MSEC_PER_SEC / HZ) * j;
-@@ -248,7 +248,7 @@ inline unsigned int jiffies_to_msecs(const unsigned long j)
- }
- EXPORT_SYMBOL(jiffies_to_msecs);
-
--inline unsigned int jiffies_to_usecs(const unsigned long j)
-+unsigned int jiffies_to_usecs(const unsigned long j)
- {
- #if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ)
- return (USEC_PER_SEC / HZ) * j;