Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 772c8f6f authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-4.11/linus-merge-signed' of git://git.kernel.dk/linux-block

Pull block layer updates from Jens Axboe:

 - blk-mq scheduling framework from me and Omar, with a port of the
   deadline scheduler for this framework. A port of BFQ from Paolo is in
   the works, and should be ready for 4.12.

 - Various fixups and improvements to the above scheduling framework
   from Omar, Paolo, Bart, me, others.

 - Cleanup of the exported sysfs blk-mq data into debugfs, from Omar.
   This allows us to export more information that helps debug hangs or
   performance issues, without cluttering or abusing the sysfs API.

 - Fixes for the sbitmap code, the scalable bitmap code that was
   migrated from blk-mq, from Omar.

 - Removal of the BLOCK_PC support in struct request, and refactoring of
   carrying SCSI payloads in the block layer. This cleans up the code
   nicely, and enables us to kill the SCSI specific parts of struct
   request, shrinking it down nicely. From Christoph mainly, with help
   from Hannes.

 - Support for ranged discard requests and discard merging, also from
   Christoph.

 - Support for OPAL in the block layer, and for NVMe as well. Mainly
   from Scott Bauer, with fixes/updates from various others folks.

 - Error code fixup for gdrom from Christophe.

 - cciss pci irq allocation cleanup from Christoph.

 - Making the cdrom device operations read only, from Kees Cook.

 - Fixes for duplicate bdi registrations and bdi/queue life time
   problems from Jan and Dan.

 - Set of fixes and updates for lightnvm, from Matias and Javier.

 - A few fixes for nbd from Josef, using idr to name devices and a
   workqueue deadlock fix on receive. Also marks Josef as the current
   maintainer of nbd.

 - Fix from Josef, overwriting queue settings when the number of
   hardware queues is updated for a blk-mq device.

 - NVMe fix from Keith, ensuring that we don't repeatedly mark and IO
   aborted, if we didn't end up aborting it.

 - SG gap merging fix from Ming Lei for block.

 - Loop fix also from Ming, fixing a race and crash between setting loop
   status and IO.

 - Two block race fixes from Tahsin, fixing request list iteration and
   fixing a race between device registration and udev device add
   notifiations.

 - Double free fix from cgroup writeback, from Tejun.

 - Another double free fix in blkcg, from Hou Tao.

 - Partition overflow fix for EFI from Alden Tondettar.

* tag 'for-4.11/linus-merge-signed' of git://git.kernel.dk/linux-block: (156 commits)
  nvme: Check for Security send/recv support before issuing commands.
  block/sed-opal: allocate struct opal_dev dynamically
  block/sed-opal: tone down not supported warnings
  block: don't defer flushes on blk-mq + scheduling
  blk-mq-sched: ask scheduler for work, if we failed dispatching leftovers
  blk-mq: don't special case flush inserts for blk-mq-sched
  blk-mq-sched: don't add flushes to the head of requeue queue
  blk-mq: have blk_mq_dispatch_rq_list() return if we queued IO or not
  block: do not allow updates through sysfs until registration completes
  lightnvm: set default lun range when no luns are specified
  lightnvm: fix off-by-one error on target initialization
  Maintainers: Modify SED list from nvme to block
  Move stack parameters for sed_ioctl to prevent oversized stack with CONFIG_KASAN
  uapi: sed-opal fix IOW for activate lsp to use correct struct
  cdrom: Make device operations read-only
  elevator: fix loading wrong elevator type for blk-mq devices
  cciss: switch to pci_irq_alloc_vectors
  block/loop: fix race between I/O and set_status
  blk-mq-sched: don't hold queue_lock when calling exit_icq
  block: set make_request_fn manually in blk_mq_update_nr_hw_queues
  ...
parents fd4a61e0 818551e2
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -249,7 +249,6 @@ struct& cdrom_device_ops\ \{ \hidewidth\cr
        unsigned\ long);\cr
\noalign{\medskip}
  &const\ int& capability;& capability flags \cr
  &int& n_minors;& number of active minor devices \cr
\};\cr
}
$$
@@ -258,13 +257,7 @@ it should add a function pointer to this $struct$. When a particular
function is not implemented, however, this $struct$ should contain a
NULL instead. The $capability$ flags specify the capabilities of the
\cdrom\ hardware and/or low-level \cdrom\ driver when a \cdrom\ drive
is registered with the \UCD. The value $n_minors$ should be a positive
value indicating the number of minor devices that are supported by
the low-level device driver, normally~1. Although these two variables
are `informative' rather than `operational,' they are included in
$cdrom_device_ops$ because they describe the capability of the {\em
driver\/} rather than the {\em drive}. Nomenclature has always been
difficult in computer programming.
is registered with the \UCD.

Note that most functions have fewer parameters than their
$blkdev_fops$ counterparts. This is because very little of the
+13 −2
Original line number Diff line number Diff line
@@ -8620,10 +8620,10 @@ S: Maintained
F:	drivers/net/ethernet/netronome/

NETWORK BLOCK DEVICE (NBD)
M:	Markus Pargmann <mpa@pengutronix.de>
M:	Josef Bacik <jbacik@fb.com>
S:	Maintained
L:	linux-block@vger.kernel.org
L:	nbd-general@lists.sourceforge.net
T:	git git://git.pengutronix.de/git/mpa/linux-nbd.git
F:	Documentation/blockdev/nbd.txt
F:	drivers/block/nbd.c
F:	include/uapi/linux/nbd.h
@@ -11097,6 +11097,17 @@ L: linux-mmc@vger.kernel.org
S:	Maintained
F:	drivers/mmc/host/sdhci-spear.c

SECURE ENCRYPTING DEVICE (SED) OPAL DRIVER
M:	Scott Bauer <scott.bauer@intel.com>
M:	Jonathan Derrick <jonathan.derrick@intel.com>
M:	Rafael Antognolli <rafael.antognolli@intel.com>
L:	linux-block@vger.kernel.org
S:	Supported
F:	block/sed*
F:	block/opal_proto.h
F:	include/linux/sed*
F:	include/uapi/linux/sed*

SECURITY SUBSYSTEM
M:	James Morris <james.l.morris@oracle.com>
M:	"Serge E. Hallyn" <serge@hallyn.com>
+24 −0
Original line number Diff line number Diff line
@@ -49,9 +49,13 @@ config LBDAF

	  If unsure, say Y.

config BLK_SCSI_REQUEST
	bool

config BLK_DEV_BSG
	bool "Block layer SG support v4"
	default y
	select BLK_SCSI_REQUEST
	help
	  Saying Y here will enable generic SG (SCSI generic) v4 support
	  for any block device.
@@ -71,6 +75,7 @@ config BLK_DEV_BSGLIB
	bool "Block layer SG support v4 helper lib"
	default n
	select BLK_DEV_BSG
	select BLK_SCSI_REQUEST
	help
	  Subsystems will normally enable this if needed. Users will not
	  normally need to manually enable this.
@@ -147,6 +152,25 @@ config BLK_WBT_MQ
	Multiqueue currently doesn't have support for IO scheduling,
	enabling this option is recommended.

config BLK_DEBUG_FS
	bool "Block layer debugging information in debugfs"
	default y
	depends on DEBUG_FS
	---help---
	Include block layer debugging information in debugfs. This information
	is mostly useful for kernel developers, but it doesn't incur any cost
	at runtime.

	Unless you are building a kernel for a tiny system, you should
	say Y here.

config BLK_SED_OPAL
	bool "Logic for interfacing with Opal enabled SEDs"
	---help---
	Builds Logic for interfacing with Opal enabled controllers.
	Enabling this option enables users to setup/unlock/lock
	Locking ranges for SED devices using the Opal protocol.

menu "Partition Types"

source "block/partitions/Kconfig"
+50 −0
Original line number Diff line number Diff line
@@ -63,6 +63,56 @@ config DEFAULT_IOSCHED
	default "cfq" if DEFAULT_CFQ
	default "noop" if DEFAULT_NOOP

config MQ_IOSCHED_DEADLINE
	tristate "MQ deadline I/O scheduler"
	default y
	---help---
	  MQ version of the deadline IO scheduler.

config MQ_IOSCHED_NONE
	bool
	default y

choice
	prompt "Default single-queue blk-mq I/O scheduler"
	default DEFAULT_SQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with a single queue.

	config DEFAULT_SQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_SQ_NONE
		bool "None"

endchoice

config DEFAULT_SQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_SQ_DEADLINE
	default "none" if DEFAULT_SQ_NONE

choice
	prompt "Default multi-queue blk-mq I/O scheduler"
	default DEFAULT_MQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with multiple queues.

	config DEFAULT_MQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_MQ_NONE
		bool "None"

endchoice

config DEFAULT_MQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_MQ_DEADLINE
	default "none" if DEFAULT_MQ_NONE

endmenu

endif
+7 −3
Original line number Diff line number Diff line
@@ -6,11 +6,12 @@ obj-$(CONFIG_BLOCK) := bio.o elevator.o blk-core.o blk-tag.o blk-sysfs.o \
			blk-flush.o blk-settings.o blk-ioc.o blk-map.o \
			blk-exec.o blk-merge.o blk-softirq.o blk-timeout.o \
			blk-lib.o blk-mq.o blk-mq-tag.o blk-stat.o \
			blk-mq-sysfs.o blk-mq-cpumap.o ioctl.o \
			genhd.o scsi_ioctl.o partition-generic.o ioprio.o \
			blk-mq-sysfs.o blk-mq-cpumap.o blk-mq-sched.o ioctl.o \
			genhd.o partition-generic.o ioprio.o \
			badblocks.o partitions/

obj-$(CONFIG_BOUNCE)		+= bounce.o
obj-$(CONFIG_BLK_SCSI_REQUEST)	+= scsi_ioctl.o
obj-$(CONFIG_BLK_DEV_BSG)	+= bsg.o
obj-$(CONFIG_BLK_DEV_BSGLIB)	+= bsg-lib.o
obj-$(CONFIG_BLK_CGROUP)	+= blk-cgroup.o
@@ -18,6 +19,7 @@ obj-$(CONFIG_BLK_DEV_THROTTLING) += blk-throttle.o
obj-$(CONFIG_IOSCHED_NOOP)	+= noop-iosched.o
obj-$(CONFIG_IOSCHED_DEADLINE)	+= deadline-iosched.o
obj-$(CONFIG_IOSCHED_CFQ)	+= cfq-iosched.o
obj-$(CONFIG_MQ_IOSCHED_DEADLINE)	+= mq-deadline.o

obj-$(CONFIG_BLOCK_COMPAT)	+= compat_ioctl.o
obj-$(CONFIG_BLK_CMDLINE_PARSER)	+= cmdline-parser.o
@@ -25,3 +27,5 @@ obj-$(CONFIG_BLK_DEV_INTEGRITY) += bio-integrity.o blk-integrity.o t10-pi.o
obj-$(CONFIG_BLK_MQ_PCI)	+= blk-mq-pci.o
obj-$(CONFIG_BLK_DEV_ZONED)	+= blk-zoned.o
obj-$(CONFIG_BLK_WBT)		+= blk-wbt.o
obj-$(CONFIG_BLK_DEBUG_FS)	+= blk-mq-debugfs.o
obj-$(CONFIG_BLK_SED_OPAL)	+= sed-opal.o
Loading