cmd = ibmasm_new_command(count); 
cmd = ibmasm_new_command(command_data->sp, count); 
static ssize_t command_file_write(struct file *file, const char __user *ubuff, size_t count, loff_t *offset){	struct ibmasmfs_command_data *command_data = file->private_data;	struct command *cmd;	unsigned long flags;	if (*offset < 0)		return -EINVAL;	if (count == 0 || count > IBMASM_CMD_MAX_BUFFER_SIZE)		return 0;	if (*offset != 0)		return 0;	/* commands are executed sequentially, only one command at a time */	if (command_data->command)		return -EAGAIN;	cmd = ibmasm_new_command(count);	if (!cmd)		return -ENOMEM;	if (copy_from_user(cmd->buffer, ubuff, count)) {		command_put(cmd);		return -EFAULT;	}	spin_lock_irqsave(&command_data->sp->lock, flags);	if (command_data->command) {		spin_unlock_irqrestore(&command_data->sp->lock, flags);		command_put(cmd);		return -EAGAIN;	}	command_data->command = cmd;	spin_unlock_irqrestore(&command_data->sp->lock, flags);	ibmasm_exec_command(command_data->sp, cmd);	ibmasm_wait_for_response(cmd, get_dot_command_timeout(cmd->buffer));	return count;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/8818760512424f60ad9fafb7a087b007a9274eb3/ibmasmfs.c/buggy/drivers/misc/ibmasm/ibmasmfs.c