Commit 31764f1b authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-20191129' of git://git.kernel.dk/linux-block

Pull block fixes from Jens Axboe:
 "I wasn't going to send this one off so soon, but unfortunately one of
  the fixes from the previous pull broke the build on some archs. So I'm
  sending this sooner rather than later. This contains:

   - Add highmem.h include for io_uring, because of the kmap() additions
     from last round. For some reason the build bot didn't spot this
     even though it sat for days.

   - Three minor ';' removals

   - Add support for the Beurer CD-on-a-chip device

   - Make io_uring work on MMU-less archs"

* tag 'for-linus-20191129' of git://git.kernel.dk/linux-block:
  io_uring: fix missing kmap() declaration on powerpc
  ataflop: Remove unneeded semicolon
  block: sunvdc: Remove unneeded semicolon
  drbd: Remove unneeded semicolon
  io_uring: add mapping support for NOMMU archs
  sr_vendor: support Beurer GL50 evo CD-on-a-chip devices.
  cdrom: respect device capabilities during opening action
parents 67b8ed29 aa4c3967
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -857,7 +857,7 @@ static void fd_calibrate( void )
	}

	if (ATARIHW_PRESENT(FDCSPEED))
		dma_wd.fdc_speed = 0; 	/* always seek with 8 Mhz */;
		dma_wd.fdc_speed = 0;   /* always seek with 8 Mhz */
	DPRINT(("fd_calibrate\n"));
	SET_IRQ_HANDLER( fd_calibrate_done );
	/* we can't verify, since the speed may be incorrect */
+1 −1
Original line number Diff line number Diff line
@@ -884,7 +884,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
		start_new_tl_epoch(connection);
		mod_rq_state(req, m, 0, RQ_NET_OK|RQ_NET_DONE);
		break;
	};
	}

	return rv;
}
+1 −1
Original line number Diff line number Diff line
@@ -634,7 +634,7 @@ static int generic_request(struct vdc_port *port, u8 op, void *buf, int len)
	case VD_OP_GET_EFI:
	case VD_OP_SET_EFI:
		return -EOPNOTSUPP;
	};
	}

	map_perm |= LDC_MAP_SHADOW | LDC_MAP_DIRECT | LDC_MAP_IO;

+11 −1
Original line number Diff line number Diff line
@@ -996,6 +996,12 @@ static void cdrom_count_tracks(struct cdrom_device_info *cdi, tracktype *tracks)
	tracks->xa = 0;
	tracks->error = 0;
	cd_dbg(CD_COUNT_TRACKS, "entering cdrom_count_tracks\n");

	if (!CDROM_CAN(CDC_PLAY_AUDIO)) {
		tracks->error = CDS_NO_INFO;
		return;
	}

	/* Grab the TOC header so we can see how many tracks there are */
	ret = cdi->ops->audio_ioctl(cdi, CDROMREADTOCHDR, &header);
	if (ret) {
@@ -1162,6 +1168,7 @@ int cdrom_open(struct cdrom_device_info *cdi, struct block_device *bdev,
		ret = open_for_data(cdi);
		if (ret)
			goto err;
		if (CDROM_CAN(CDC_GENERIC_PACKET))
			cdrom_mmc3_profile(cdi);
		if (mode & FMODE_WRITE) {
			ret = -EROFS;
@@ -2882,6 +2889,9 @@ int cdrom_get_last_written(struct cdrom_device_info *cdi, long *last_written)
	   it doesn't give enough information or fails. then we return
	   the toc contents. */
use_toc:
	if (!CDROM_CAN(CDC_PLAY_AUDIO))
		return -ENOSYS;

	toc.cdte_format = CDROM_MSF;
	toc.cdte_track = CDROM_LEADOUT;
	if ((ret = cdi->ops->audio_ioctl(cdi, CDROMREADTOCENTRY, &toc)))
+18 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@
#define VENDOR_NEC             2
#define VENDOR_TOSHIBA         3
#define VENDOR_WRITER          4	/* pre-scsi3 writers */
#define VENDOR_CYGNAL_85ED     5	/* CD-on-a-chip */

#define VENDOR_TIMEOUT	30*HZ

@@ -99,6 +100,23 @@ void sr_vendor_init(Scsi_CD *cd)
	} else if (!strncmp(vendor, "TOSHIBA", 7)) {
		cd->vendor = VENDOR_TOSHIBA;

	} else if (!strncmp(vendor, "Beurer", 6) &&
		   !strncmp(model, "Gluco Memory", 12)) {
		/* The Beurer GL50 evo uses a Cygnal-manufactured CD-on-a-chip
		   that only accepts a subset of SCSI commands.  Most of the
		   not-implemented commands are fine to fail, but a few,
		   particularly around the MMC or Audio commands, will put the
		   device into an unrecoverable state, so they need to be
		   avoided at all costs.
		*/
		cd->vendor = VENDOR_CYGNAL_85ED;
		cd->cdi.mask |= (
			CDC_MULTI_SESSION |
			CDC_CLOSE_TRAY | CDC_OPEN_TRAY |
			CDC_LOCK |
			CDC_GENERIC_PACKET |
			CDC_PLAY_AUDIO
			);
	}
#endif
}
Loading