Commit 6c21e433 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull  more s390 updates from Martin Schwidefsky:
 "Three notable larger changes next to the usual bug fixing:

   - update the email addresses in MAINTAINERS for the s390 folks to use
     the simpler linux.ibm.com domain instead of the old
     linux.vnet.ibm.com

   - an update for the zcrypt device driver that removes some old and
     obsolete interfaces and add support for up to 256 crypto adapters

   - a rework of the IPL aka boot code"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (23 commits)
  s390: correct nospec auto detection init order
  s390/zcrypt: Support up to 256 crypto adapters.
  s390/zcrypt: Remove deprecated zcrypt proc interface.
  s390/zcrypt: Remove deprecated ioctls.
  s390/zcrypt: Make ap init functions static.
  MAINTAINERS: update s390 maintainers email addresses
  s390/ipl: remove reipl_method and dump_method
  s390/ipl: correct kdump reipl block checksum calculation
  s390/ipl: remove non-existing functions declaration
  s390: assume diag308 set always works
  s390/ipl: avoid adding scpdata to cmdline during ftp/dvd boot
  s390/ipl: correct ipl parmblock valid checks
  s390/ipl: rely on diag308 store to get ipl info
  s390/ipl: move ipl_flags to ipl.c
  s390/ipl: get rid of ipl_ssid and ipl_devno
  s390/ipl: unite diag308 and scsi boot ipl blocks
  s390/ipl: ensure loadparm valid flag is set
  s390/qdio: lock device while installing IRQ handler
  s390/qdio: clear intparm during shutdown
  s390/ccwgroup: require at least one ccw device
  ...
parents 16e205cf 6a3d1e81
Loading
Loading
Loading
Loading
+17 −17
Original line number Diff line number Diff line
@@ -5843,7 +5843,7 @@ F: scripts/Makefile.gcc-plugins
F:	Documentation/gcc-plugins.txt

GCOV BASED KERNEL PROFILING
M:	Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
M:	Peter Oberparleiter <oberpar@linux.ibm.com>
S:	Maintained
F:	kernel/gcov/
F:	Documentation/dev-tools/gcov.rst
@@ -7768,7 +7768,7 @@ F: arch/powerpc/kernel/kvm*

KERNEL VIRTUAL MACHINE for s390 (KVM/s390)
M:	Christian Borntraeger <borntraeger@de.ibm.com>
M:	Janosch Frank <frankja@linux.vnet.ibm.com>
M:	Janosch Frank <frankja@linux.ibm.com>
R:	David Hildenbrand <david@redhat.com>
R:	Cornelia Huck <cohuck@redhat.com>
L:	linux-s390@vger.kernel.org
@@ -12124,16 +12124,16 @@ F: Documentation/s390/
F:	Documentation/driver-api/s390-drivers.rst

S390 COMMON I/O LAYER
M:	Sebastian Ott <sebott@linux.vnet.ibm.com>
M:	Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
M:	Sebastian Ott <sebott@linux.ibm.com>
M:	Peter Oberparleiter <oberpar@linux.ibm.com>
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
F:	drivers/s390/cio/

S390 DASD DRIVER
M:	Stefan Haberland <sth@linux.vnet.ibm.com>
M:	Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
M:	Stefan Haberland <sth@linux.ibm.com>
M:	Jan Hoeppner <hoeppner@linux.ibm.com>
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -12148,8 +12148,8 @@ S: Supported
F:	drivers/iommu/s390-iommu.c

S390 IUCV NETWORK LAYER
M:	Julian Wiedmann <jwi@linux.vnet.ibm.com>
M:	Ursula Braun <ubraun@linux.vnet.ibm.com>
M:	Julian Wiedmann <jwi@linux.ibm.com>
M:	Ursula Braun <ubraun@linux.ibm.com>
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -12158,15 +12158,15 @@ F: include/net/iucv/
F:	net/iucv/

S390 NETWORK DRIVERS
M:	Julian Wiedmann <jwi@linux.vnet.ibm.com>
M:	Ursula Braun <ubraun@linux.vnet.ibm.com>
M:	Julian Wiedmann <jwi@linux.ibm.com>
M:	Ursula Braun <ubraun@linux.ibm.com>
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
F:	drivers/s390/net/

S390 PCI SUBSYSTEM
M:	Sebastian Ott <sebott@linux.vnet.ibm.com>
M:	Sebastian Ott <sebott@linux.ibm.com>
M:	Gerald Schaefer <gerald.schaefer@de.ibm.com>
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
@@ -12176,8 +12176,8 @@ F: drivers/pci/hotplug/s390_pci_hpc.c

S390 VFIO-CCW DRIVER
M:	Cornelia Huck <cohuck@redhat.com>
M:	Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
M:	Halil Pasic <pasic@linux.vnet.ibm.com>
M:	Dong Jia Shi <bjsdjshi@linux.ibm.com>
M:	Halil Pasic <pasic@linux.ibm.com>
L:	linux-s390@vger.kernel.org
L:	kvm@vger.kernel.org
S:	Supported
@@ -12193,8 +12193,8 @@ S: Supported
F:	drivers/s390/crypto/

S390 ZFCP DRIVER
M:	Steffen Maier <maier@linux.vnet.ibm.com>
M:	Benjamin Block <bblock@linux.vnet.ibm.com>
M:	Steffen Maier <maier@linux.ibm.com>
M:	Benjamin Block <bblock@linux.ibm.com>
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -12630,7 +12630,7 @@ S: Maintained
F:	drivers/misc/sgi-xp/

SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
M:	Ursula Braun <ubraun@linux.vnet.ibm.com>
M:	Ursula Braun <ubraun@linux.ibm.com>
L:	linux-s390@vger.kernel.org
W:	http://www.ibm.com/developerworks/linux/linux390/
S:	Supported
@@ -14965,7 +14965,7 @@ F: include/uapi/linux/virtio_crypto.h

VIRTIO DRIVERS FOR S390
M:	Cornelia Huck <cohuck@redhat.com>
M:	Halil Pasic <pasic@linux.vnet.ibm.com>
M:	Halil Pasic <pasic@linux.ibm.com>
L:	linux-s390@vger.kernel.org
L:	virtualization@lists.linux-foundation.org
L:	kvm@vger.kernel.org
+0 −23
Original line number Diff line number Diff line
@@ -119,34 +119,12 @@ static void error(char *x)
	asm volatile("lpsw %0" : : "Q" (psw));
}

/*
 * Safe guard the ipl parameter block against a memory area that will be
 * overwritten. The validity check for the ipl parameter block is complex
 * (see cio_get_iplinfo and ipl_save_parameters) but if the pointer to
 * the ipl parameter block intersects with the passed memory area we can
 * safely assume that we can read from that memory. In that case just copy
 * the memory to IPL_PARMBLOCK_ORIGIN even if there is no ipl parameter
 * block.
 */
static void check_ipl_parmblock(void *start, unsigned long size)
{
	void *src, *dst;

	src = (void *)(unsigned long) S390_lowcore.ipl_parmblock_ptr;
	if (src + PAGE_SIZE <= start || src >= start + size)
		return;
	dst = (void *) IPL_PARMBLOCK_ORIGIN;
	memmove(dst, src, PAGE_SIZE);
	S390_lowcore.ipl_parmblock_ptr = IPL_PARMBLOCK_ORIGIN;
}

unsigned long decompress_kernel(void)
{
	void *output, *kernel_end;

	output = (void *) ALIGN((unsigned long) _end + HEAP_SIZE, PAGE_SIZE);
	kernel_end = output + SZ__bss_start;
	check_ipl_parmblock((void *) 0, (unsigned long) kernel_end);

#ifdef CONFIG_BLK_DEV_INITRD
	/*
@@ -156,7 +134,6 @@ unsigned long decompress_kernel(void)
	 * current bss section..
	 */
	if (INITRD_START && INITRD_SIZE && kernel_end > (void *) INITRD_START) {
		check_ipl_parmblock(kernel_end, INITRD_SIZE);
		memmove(kernel_end, (void *) INITRD_START, INITRD_SIZE);
		INITRD_START = (unsigned long) kernel_end;
	}
+4 −4
Original line number Diff line number Diff line
@@ -329,7 +329,7 @@ static void fallback_exit_blk(struct crypto_tfm *tfm)
static struct crypto_alg ecb_aes_alg = {
	.cra_name		=	"ecb(aes)",
	.cra_driver_name	=	"ecb-aes-s390",
	.cra_priority		=	400,	/* combo: aes + ecb */
	.cra_priority		=	401,	/* combo: aes + ecb + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER |
					CRYPTO_ALG_NEED_FALLBACK,
	.cra_blocksize		=	AES_BLOCK_SIZE,
@@ -426,7 +426,7 @@ static int cbc_aes_decrypt(struct blkcipher_desc *desc,
static struct crypto_alg cbc_aes_alg = {
	.cra_name		=	"cbc(aes)",
	.cra_driver_name	=	"cbc-aes-s390",
	.cra_priority		=	400,	/* combo: aes + cbc */
	.cra_priority		=	402,	/* ecb-aes-s390 + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER |
					CRYPTO_ALG_NEED_FALLBACK,
	.cra_blocksize		=	AES_BLOCK_SIZE,
@@ -633,7 +633,7 @@ static void xts_fallback_exit(struct crypto_tfm *tfm)
static struct crypto_alg xts_aes_alg = {
	.cra_name		=	"xts(aes)",
	.cra_driver_name	=	"xts-aes-s390",
	.cra_priority		=	400,	/* combo: aes + xts */
	.cra_priority		=	402,	/* ecb-aes-s390 + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER |
					CRYPTO_ALG_NEED_FALLBACK,
	.cra_blocksize		=	AES_BLOCK_SIZE,
@@ -763,7 +763,7 @@ static int ctr_aes_decrypt(struct blkcipher_desc *desc,
static struct crypto_alg ctr_aes_alg = {
	.cra_name		=	"ctr(aes)",
	.cra_driver_name	=	"ctr-aes-s390",
	.cra_priority		=	400,	/* combo: aes + ctr */
	.cra_priority		=	402,	/* ecb-aes-s390 + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER |
					CRYPTO_ALG_NEED_FALLBACK,
	.cra_blocksize		=	1,
+4 −4
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ static int ecb_paes_decrypt(struct blkcipher_desc *desc,
static struct crypto_alg ecb_paes_alg = {
	.cra_name		=	"ecb(paes)",
	.cra_driver_name	=	"ecb-paes-s390",
	.cra_priority		=	400,	/* combo: aes + ecb */
	.cra_priority		=	401,	/* combo: aes + ecb + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER,
	.cra_blocksize		=	AES_BLOCK_SIZE,
	.cra_ctxsize		=	sizeof(struct s390_paes_ctx),
@@ -241,7 +241,7 @@ static int cbc_paes_decrypt(struct blkcipher_desc *desc,
static struct crypto_alg cbc_paes_alg = {
	.cra_name		=	"cbc(paes)",
	.cra_driver_name	=	"cbc-paes-s390",
	.cra_priority		=	400,	/* combo: aes + cbc */
	.cra_priority		=	402,	/* ecb-paes-s390 + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER,
	.cra_blocksize		=	AES_BLOCK_SIZE,
	.cra_ctxsize		=	sizeof(struct s390_paes_ctx),
@@ -377,7 +377,7 @@ static int xts_paes_decrypt(struct blkcipher_desc *desc,
static struct crypto_alg xts_paes_alg = {
	.cra_name		=	"xts(paes)",
	.cra_driver_name	=	"xts-paes-s390",
	.cra_priority		=	400,	/* combo: aes + xts */
	.cra_priority		=	402,	/* ecb-paes-s390 + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER,
	.cra_blocksize		=	AES_BLOCK_SIZE,
	.cra_ctxsize		=	sizeof(struct s390_pxts_ctx),
@@ -523,7 +523,7 @@ static int ctr_paes_decrypt(struct blkcipher_desc *desc,
static struct crypto_alg ctr_paes_alg = {
	.cra_name		=	"ctr(paes)",
	.cra_driver_name	=	"ctr-paes-s390",
	.cra_priority		=	400,	/* combo: aes + ctr */
	.cra_priority		=	402,	/* ecb-paes-s390 + 1 */
	.cra_flags		=	CRYPTO_ALG_TYPE_BLKCIPHER,
	.cra_blocksize		=	1,
	.cra_ctxsize		=	sizeof(struct s390_paes_ctx),
+3 −3
Original line number Diff line number Diff line
@@ -20,9 +20,9 @@
 */
typedef unsigned int ap_qid_t;

#define AP_MKQID(_card, _queue) (((_card) & 63) << 8 | ((_queue) & 255))
#define AP_QID_CARD(_qid) (((_qid) >> 8) & 63)
#define AP_QID_QUEUE(_qid) ((_qid) & 255)
#define AP_MKQID(_card, _queue) (((_card) & 0xff) << 8 | ((_queue) & 0xff))
#define AP_QID_CARD(_qid) (((_qid) >> 8) & 0xff)
#define AP_QID_QUEUE(_qid) ((_qid) & 0xff)

/**
 * struct ap_queue_status - Holds the AP queue status.
Loading