/* After a "read attention message" request there are two possible results: */
static int tape_3590_read_attmsg(struct tape_device *device)
/* After a "read attention message" request there are two possible results: */
static int tape_3590_read_attmsg(struct tape_device *device)
{
	struct tape_request *request;
	char *buf;
	request = tape_alloc_request(3, 4096);
	if (IS_ERR(request))
		return PTR_ERR(request);
	request->op = TO_READ_ATTMSG;
	buf = request->cpdata;
	buf[0] = PREP_RD_SS_DATA;
	buf[6] = RD_ATTMSG;
	tape_ccw_cc(request->cpaddr, PERFORM_SS_FUNC, 12, buf);
	tape_ccw_cc(request->cpaddr + 1, READ_SS_DATA, 4096 - 12, buf + 12);
	tape_ccw_end(request->cpaddr + 2, NOP, 0, NULL);
	return tape_do_io_free(device, request);
}