These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / gpu / drm / nouveau / nvif / notify.c
index 8e34748..b0787ff 100644 (file)
@@ -124,7 +124,7 @@ nvif_notify(const void *header, u32 length, const void *data, u32 size)
        }
 
        if (!WARN_ON(notify == NULL)) {
-               struct nvif_client *client = nvif_client(notify->object);
+               struct nvif_client *client = notify->object->client;
                if (!WARN_ON(notify->size != size)) {
                        atomic_inc(&notify->putcnt);
                        if (test_bit(NVIF_NOTIFY_WORK, &notify->flags)) {
@@ -156,7 +156,7 @@ nvif_notify_fini(struct nvif_notify *notify)
        if (ret >= 0 && object) {
                ret = nvif_object_ioctl(object, &args, sizeof(args), NULL);
                if (ret == 0) {
-                       nvif_object_ref(NULL, &notify->object);
+                       notify->object = NULL;
                        kfree((void *)notify->data);
                }
        }
@@ -164,9 +164,9 @@ nvif_notify_fini(struct nvif_notify *notify)
 }
 
 int
-nvif_notify_init(struct nvif_object *object, void (*dtor)(struct nvif_notify *),
-                int (*func)(struct nvif_notify *), bool work, u8 event,
-                void *data, u32 size, u32 reply, struct nvif_notify *notify)
+nvif_notify_init(struct nvif_object *object, int (*func)(struct nvif_notify *),
+                bool work, u8 event, void *data, u32 size, u32 reply,
+                struct nvif_notify *notify)
 {
        struct {
                struct nvif_ioctl_v0 ioctl;
@@ -175,11 +175,9 @@ nvif_notify_init(struct nvif_object *object, void (*dtor)(struct nvif_notify *),
        } *args;
        int ret = -ENOMEM;
 
-       notify->object = NULL;
-       nvif_object_ref(object, &notify->object);
+       notify->object = object;
        notify->flags = 0;
        atomic_set(&notify->putcnt, 1);
-       notify->dtor = dtor;
        notify->func = func;
        notify->data = NULL;
        notify->size = reply;
@@ -211,38 +209,3 @@ done:
                nvif_notify_fini(notify);
        return ret;
 }
-
-static void
-nvif_notify_del(struct nvif_notify *notify)
-{
-       nvif_notify_fini(notify);
-       kfree(notify);
-}
-
-void
-nvif_notify_ref(struct nvif_notify *notify, struct nvif_notify **pnotify)
-{
-       BUG_ON(notify != NULL);
-       if (*pnotify)
-               (*pnotify)->dtor(*pnotify);
-       *pnotify = notify;
-}
-
-int
-nvif_notify_new(struct nvif_object *object, int (*func)(struct nvif_notify *),
-               bool work, u8 type, void *data, u32 size, u32 reply,
-               struct nvif_notify **pnotify)
-{
-       struct nvif_notify *notify = kzalloc(sizeof(*notify), GFP_KERNEL);
-       if (notify) {
-               int ret = nvif_notify_init(object, nvif_notify_del, func, work,
-                                          type, data, size, reply, notify);
-               if (ret) {
-                       kfree(notify);
-                       notify = NULL;
-               }
-               *pnotify = notify;
-               return ret;
-       }
-       return -ENOMEM;
-}