Lines Matching defs:user

759 static void sbefifo_release_command(struct sbefifo_user *user)
761 if (is_vmalloc_addr(user->pending_cmd))
762 vfree(user->pending_cmd);
763 user->pending_cmd = NULL;
764 user->pending_len = 0;
770 struct sbefifo_user *user;
772 user = kzalloc(sizeof(struct sbefifo_user), GFP_KERNEL);
773 if (!user)
776 file->private_data = user;
777 user->sbefifo = sbefifo;
778 user->cmd_page = (void *)__get_free_page(GFP_KERNEL);
779 if (!user->cmd_page) {
780 kfree(user);
783 mutex_init(&user->file_lock);
791 struct sbefifo_user *user = file->private_data;
798 if (!user)
800 sbefifo = user->sbefifo;
804 mutex_lock(&user->file_lock);
807 if (user->pending_len == 0) {
811 if (user->pending_len < 8) {
815 cmd_len = user->pending_len >> 2;
824 rc = __sbefifo_submit(sbefifo, user->pending_cmd, cmd_len, &resp_iter);
832 sbefifo_release_command(user);
833 mutex_unlock(&user->file_lock);
840 struct sbefifo_user *user = file->private_data;
844 if (!user)
846 sbefifo = user->sbefifo;
852 mutex_lock(&user->file_lock);
856 user->pending_cmd = user->cmd_page;
858 user->pending_cmd = vmalloc(len);
859 if (!user->pending_cmd) {
865 if (copy_from_user(user->pending_cmd, buf, len)) {
871 if (len == 4 && be32_to_cpu(*(__be32 *)user->pending_cmd) ==
875 user->pending_len = 0;
879 rc = sbefifo_request_reset(user->sbefifo);
887 user->pending_len = len;
889 if (!user->pending_len)
890 sbefifo_release_command(user);
892 mutex_unlock(&user->file_lock);
900 struct sbefifo_user *user = file->private_data;
902 if (!user)
905 sbefifo_release_command(user);
906 free_page((unsigned long)user->cmd_page);
907 kfree(user);