#define pr_fmt(fmt) "xen:" KBUILD_MODNAME ": " fmt
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/miscdevice.h>
struct privcmd_buf_private {
struct privcmd_buf_vma_private {
struct privcmd_buf_private *file_priv;
static int privcmd_buf_open(struct inode *ino, struct file *file)
struct privcmd_buf_private *file_priv;
file_priv = kzalloc(sizeof(*file_priv), GFP_KERNEL);
mutex_init(&file_priv->lock);
INIT_LIST_HEAD(&file_priv->list);
file->private_data = file_priv;
static void privcmd_buf_vmapriv_free(struct privcmd_buf_vma_private *vma_priv)
list_del(&vma_priv->list);
for (i = 0; i < vma_priv->n_pages; i++)
__free_page(vma_priv->pages[i]);