| diff --git a/vmmon-only/linux/driver.c b/vmmon-only/linux/driver.c |
| index b21dd44..960c2aa 100644 |
| --- a/vmmon-only/linux/driver.c |
| +++ b/vmmon-only/linux/driver.c |
| @@ -178,7 +178,22 @@ static struct vm_operations_struct vmuser_mops = { |
| #endif |
| }; |
| |
| -static struct file_operations vmuser_fops; |
| +static struct file_operations vmuser_fops = { |
| + .owner = THIS_MODULE, |
| + .poll = LinuxDriverPoll, |
| +#ifdef HAVE_UNLOCKED_IOCTL |
| + .unlocked_ioctl = LinuxDriver_UnlockedIoctl, |
| +#else |
| + .ioctl = LinuxDriver_Ioctl, |
| +#endif |
| +#ifdef HAVE_COMPAT_IOCTL |
| + .compat_ioctl = LinuxDriver_UnlockedIoctl, |
| +#endif |
| + .open = LinuxDriver_Open, |
| + .release = LinuxDriver_Close, |
| + .mmap = LinuxDriverMmap |
| +}; |
| + |
| static struct timer_list tscTimer; |
| |
| /* |
| @@ -357,27 +372,6 @@ init_module(void) |
| spin_lock_init(&linuxState.pollListLock); |
| #endif |
| |
| - /* |
| - * Initialize the file_operations structure. Because this code is always |
| - * compiled as a module, this is fine to do it here and not in a static |
| - * initializer. |
| - */ |
| - |
| - memset(&vmuser_fops, 0, sizeof vmuser_fops); |
| - vmuser_fops.owner = THIS_MODULE; |
| - vmuser_fops.poll = LinuxDriverPoll; |
| -#ifdef HAVE_UNLOCKED_IOCTL |
| - vmuser_fops.unlocked_ioctl = LinuxDriver_UnlockedIoctl; |
| -#else |
| - vmuser_fops.ioctl = LinuxDriver_Ioctl; |
| -#endif |
| -#ifdef HAVE_COMPAT_IOCTL |
| - vmuser_fops.compat_ioctl = LinuxDriver_UnlockedIoctl; |
| -#endif |
| - vmuser_fops.open = LinuxDriver_Open; |
| - vmuser_fops.release = LinuxDriver_Close; |
| - vmuser_fops.mmap = LinuxDriverMmap; |
| - |
| #ifdef VMX86_DEVEL |
| devel_init_module(); |
| linuxState.minor = 0; |
| diff --git a/vmnet-only/driver.c b/vmnet-only/driver.c |
| index b12b982..40bd4cf 100644 |
| --- a/vmnet-only/driver.c |
| +++ b/vmnet-only/driver.c |
| @@ -165,7 +165,22 @@ static long VNetFileOpUnlockedIoctl(struct file * filp, |
| unsigned int iocmd, unsigned long ioarg); |
| #endif |
| |
| -static struct file_operations vnetFileOps; |
| +static struct file_operations vnetFileOps = { |
| + .owner = THIS_MODULE, |
| + .read = VNetFileOpRead, |
| + .write = VNetFileOpWrite, |
| + .poll = VNetFileOpPoll, |
| +#ifdef HAVE_UNLOCKED_IOCTL |
| + .unlocked_ioctl = VNetFileOpUnlockedIoctl, |
| +#else |
| + .ioctl = VNetFileOpIoctl, |
| +#endif |
| +#ifdef HAVE_COMPAT_IOCTL |
| + .compat_ioctl = VNetFileOpUnlockedIoctl, |
| +#endif |
| + .open = VNetFileOpOpen, |
| + .release = VNetFileOpClose |
| +}; |
| |
| /* |
| * Utility functions |
| @@ -476,28 +491,6 @@ init_module(void) |
| goto err_proto; |
| } |
| |
| - /* |
| - * Initialize the file_operations structure. Because this code is always |
| - * compiled as a module, this is fine to do it here and not in a static |
| - * initializer. |
| - */ |
| - |
| - memset(&vnetFileOps, 0, sizeof vnetFileOps); |
| - vnetFileOps.owner = THIS_MODULE; |
| - vnetFileOps.read = VNetFileOpRead; |
| - vnetFileOps.write = VNetFileOpWrite; |
| - vnetFileOps.poll = VNetFileOpPoll; |
| -#ifdef HAVE_UNLOCKED_IOCTL |
| - vnetFileOps.unlocked_ioctl = VNetFileOpUnlockedIoctl; |
| -#else |
| - vnetFileOps.ioctl = VNetFileOpIoctl; |
| -#endif |
| -#ifdef HAVE_COMPAT_IOCTL |
| - vnetFileOps.compat_ioctl = VNetFileOpUnlockedIoctl; |
| -#endif |
| - vnetFileOps.open = VNetFileOpOpen; |
| - vnetFileOps.release = VNetFileOpClose; |
| - |
| retval = register_chrdev(VNET_MAJOR_NUMBER, "vmnet", &vnetFileOps); |
| if (retval) { |
| LOG(0, (KERN_NOTICE "/dev/vmnet: could not register major device %d\n", |