Lines Matching refs:session

31 	struct vmcp_session *session;  in vmcp_open()  local
36 session = kmalloc(sizeof(*session), GFP_KERNEL); in vmcp_open()
37 if (!session) in vmcp_open()
40 session->bufsize = PAGE_SIZE; in vmcp_open()
41 session->response = NULL; in vmcp_open()
42 session->resp_size = 0; in vmcp_open()
43 mutex_init(&session->mutex); in vmcp_open()
44 file->private_data = session; in vmcp_open()
50 struct vmcp_session *session; in vmcp_release() local
52 session = file->private_data; in vmcp_release()
54 free_pages((unsigned long)session->response, get_order(session->bufsize)); in vmcp_release()
55 kfree(session); in vmcp_release()
64 struct vmcp_session *session; in vmcp_read() local
66 session = file->private_data; in vmcp_read()
67 if (mutex_lock_interruptible(&session->mutex)) in vmcp_read()
69 if (!session->response) { in vmcp_read()
70 mutex_unlock(&session->mutex); in vmcp_read()
73 size = min_t(size_t, session->resp_size, session->bufsize); in vmcp_read()
75 session->response, size); in vmcp_read()
77 mutex_unlock(&session->mutex); in vmcp_read()
87 struct vmcp_session *session; in vmcp_write() local
99 session = file->private_data; in vmcp_write()
100 if (mutex_lock_interruptible(&session->mutex)) { in vmcp_write()
104 if (!session->response) in vmcp_write()
105 session->response = (char *)__get_free_pages(GFP_KERNEL in vmcp_write()
107 get_order(session->bufsize)); in vmcp_write()
108 if (!session->response) { in vmcp_write()
109 mutex_unlock(&session->mutex); in vmcp_write()
114 session->resp_size = cpcmd(cmd, session->response, session->bufsize, in vmcp_write()
115 &session->resp_code); in vmcp_write()
116 mutex_unlock(&session->mutex); in vmcp_write()
137 struct vmcp_session *session; in vmcp_ioctl() local
141 session = file->private_data; in vmcp_ioctl()
146 if (mutex_lock_interruptible(&session->mutex)) in vmcp_ioctl()
150 temp = session->resp_code; in vmcp_ioctl()
151 mutex_unlock(&session->mutex); in vmcp_ioctl()
154 free_pages((unsigned long)session->response, in vmcp_ioctl()
155 get_order(session->bufsize)); in vmcp_ioctl()
156 session->response=NULL; in vmcp_ioctl()
157 temp = get_user(session->bufsize, argp); in vmcp_ioctl()
158 if (get_order(session->bufsize) > 8) { in vmcp_ioctl()
159 session->bufsize = PAGE_SIZE; in vmcp_ioctl()
162 mutex_unlock(&session->mutex); in vmcp_ioctl()
165 temp = session->resp_size; in vmcp_ioctl()
166 mutex_unlock(&session->mutex); in vmcp_ioctl()
169 mutex_unlock(&session->mutex); in vmcp_ioctl()