return 0;
 }
 
-static ssize_t intel_vgpu_rw(struct mdev_device *mdev, char *buf,
+static ssize_t intel_vgpu_rw(struct intel_vgpu *vgpu, char *buf,
                        size_t count, loff_t *ppos, bool is_write)
 {
-       struct intel_vgpu *vgpu = mdev_get_drvdata(mdev);
        unsigned int index = VFIO_PCI_OFFSET_TO_INDEX(*ppos);
        u64 pos = *ppos & VFIO_PCI_OFFSET_MASK;
        int ret = -EINVAL;
        return ret == 0 ? count : ret;
 }
 
-static bool gtt_entry(struct mdev_device *mdev, loff_t *ppos)
+static bool gtt_entry(struct intel_vgpu *vgpu, loff_t *ppos)
 {
-       struct intel_vgpu *vgpu = mdev_get_drvdata(mdev);
        unsigned int index = VFIO_PCI_OFFSET_TO_INDEX(*ppos);
        struct intel_gvt *gvt = vgpu->gvt;
        int offset;
 static ssize_t intel_vgpu_read(struct mdev_device *mdev, char __user *buf,
                        size_t count, loff_t *ppos)
 {
+       struct intel_vgpu *vgpu = mdev_get_drvdata(mdev);
        unsigned int done = 0;
        int ret;
 
 
                /* Only support GGTT entry 8 bytes read */
                if (count >= 8 && !(*ppos % 8) &&
-                       gtt_entry(mdev, ppos)) {
+                       gtt_entry(vgpu, ppos)) {
                        u64 val;
 
-                       ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
+                       ret = intel_vgpu_rw(vgpu, (char *)&val, sizeof(val),
                                        ppos, false);
                        if (ret <= 0)
                                goto read_err;
                } else if (count >= 4 && !(*ppos % 4)) {
                        u32 val;
 
-                       ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
+                       ret = intel_vgpu_rw(vgpu, (char *)&val, sizeof(val),
                                        ppos, false);
                        if (ret <= 0)
                                goto read_err;
                } else if (count >= 2 && !(*ppos % 2)) {
                        u16 val;
 
-                       ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
+                       ret = intel_vgpu_rw(vgpu, (char *)&val, sizeof(val),
                                        ppos, false);
                        if (ret <= 0)
                                goto read_err;
                } else {
                        u8 val;
 
-                       ret = intel_vgpu_rw(mdev, &val, sizeof(val), ppos,
+                       ret = intel_vgpu_rw(vgpu, &val, sizeof(val), ppos,
                                        false);
                        if (ret <= 0)
                                goto read_err;
                                const char __user *buf,
                                size_t count, loff_t *ppos)
 {
+       struct intel_vgpu *vgpu = mdev_get_drvdata(mdev);
        unsigned int done = 0;
        int ret;
 
 
                /* Only support GGTT entry 8 bytes write */
                if (count >= 8 && !(*ppos % 8) &&
-                       gtt_entry(mdev, ppos)) {
+                       gtt_entry(vgpu, ppos)) {
                        u64 val;
 
                        if (copy_from_user(&val, buf, sizeof(val)))
                                goto write_err;
 
-                       ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
+                       ret = intel_vgpu_rw(vgpu, (char *)&val, sizeof(val),
                                        ppos, true);
                        if (ret <= 0)
                                goto write_err;
                        if (copy_from_user(&val, buf, sizeof(val)))
                                goto write_err;
 
-                       ret = intel_vgpu_rw(mdev, (char *)&val, sizeof(val),
+                       ret = intel_vgpu_rw(vgpu, (char *)&val, sizeof(val),
                                        ppos, true);
                        if (ret <= 0)
                                goto write_err;
                        if (copy_from_user(&val, buf, sizeof(val)))
                                goto write_err;
 
-                       ret = intel_vgpu_rw(mdev, (char *)&val,
+                       ret = intel_vgpu_rw(vgpu, (char *)&val,
                                        sizeof(val), ppos, true);
                        if (ret <= 0)
                                goto write_err;
                        if (copy_from_user(&val, buf, sizeof(val)))
                                goto write_err;
 
-                       ret = intel_vgpu_rw(mdev, &val, sizeof(val),
+                       ret = intel_vgpu_rw(vgpu, &val, sizeof(val),
                                        ppos, true);
                        if (ret <= 0)
                                goto write_err;