Commit 4dd68199 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 's390-5.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 updates from Vasily Gorbik:

 - Default configs updates

 - Minor qdio cleanup

 - Sparse warnings fixes

 - Implicit-fallthrough warnings fixes

* tag 's390-5.3-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/zcrypt: adjust switch fall through comments for -Wimplicit-fallthrough
  vfio-ccw: make vfio_ccw_async_region_ops static
  s390/3215: add switch fall through comment for -Wimplicit-fallthrough
  s390/tape: add fallthrough annotations
  s390/mm: add fallthrough annotations
  s390/mm: make gmap_test_and_clear_dirty_pmd static
  s390/kexec: add missing include to machine_kexec_reloc.c
  s390/perf: make cf_diag_csd static
  s390/lib: add missing include
  s390/boot: add missing declarations and includes
  s390: update configs
  s390: clean up qdio.h
parents 6e6d0536 3cdd9860
...@@ -8,6 +8,7 @@ void store_ipl_parmblock(void); ...@@ -8,6 +8,7 @@ void store_ipl_parmblock(void);
void setup_boot_command_line(void); void setup_boot_command_line(void);
void parse_boot_command_line(void); void parse_boot_command_line(void);
void setup_memory_end(void); void setup_memory_end(void);
void verify_facilities(void);
void print_missing_facilities(void); void print_missing_facilities(void);
unsigned long get_random_base(unsigned long safe_addr); unsigned long get_random_base(unsigned long safe_addr);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include <asm/timex.h> #include <asm/timex.h>
#include <asm/sclp.h> #include <asm/sclp.h>
#include "compressed/decompressor.h" #include "compressed/decompressor.h"
#include "boot.h"
#define PRNG_MODE_TDES 1 #define PRNG_MODE_TDES 1
#define PRNG_MODE_SHA512 2 #define PRNG_MODE_SHA512 2
......
This diff is collapsed.
This diff is collapsed.
# CONFIG_SWAP is not set # CONFIG_SWAP is not set
CONFIG_NO_HZ_IDLE=y CONFIG_NO_HZ_IDLE=y
CONFIG_HIGH_RES_TIMERS=y CONFIG_HIGH_RES_TIMERS=y
# CONFIG_CPU_ISOLATION is not set
# CONFIG_UTS_NS is not set
# CONFIG_PID_NS is not set
# CONFIG_NET_NS is not set
CONFIG_BLK_DEV_INITRD=y CONFIG_BLK_DEV_INITRD=y
CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_COMPAT_BRK is not set # CONFIG_COMPAT_BRK is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_IBM_PARTITION=y
CONFIG_DEFAULT_DEADLINE=y
CONFIG_TUNE_ZEC12=y CONFIG_TUNE_ZEC12=y
# CONFIG_COMPAT is not set # CONFIG_COMPAT is not set
CONFIG_NR_CPUS=2 CONFIG_NR_CPUS=2
# CONFIG_HOTPLUG_CPU is not set
CONFIG_HZ_100=y CONFIG_HZ_100=y
# CONFIG_ARCH_RANDOM is not set # CONFIG_ARCH_RANDOM is not set
# CONFIG_COMPACTION is not set # CONFIG_RELOCATABLE is not set
# CONFIG_MIGRATION is not set
# CONFIG_BOUNCE is not set
# CONFIG_CHECK_STACK is not set
# CONFIG_CHSC_SCH is not set # CONFIG_CHSC_SCH is not set
# CONFIG_SCM_BUS is not set # CONFIG_SCM_BUS is not set
CONFIG_CRASH_DUMP=y CONFIG_CRASH_DUMP=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_SECCOMP is not set # CONFIG_SECCOMP is not set
# CONFIG_PFAULT is not set
# CONFIG_S390_HYPFS_FS is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_S390_GUEST is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_IBM_PARTITION=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
# CONFIG_COMPACTION is not set
# CONFIG_MIGRATION is not set
# CONFIG_BOUNCE is not set
CONFIG_NET=y CONFIG_NET=y
# CONFIG_IUCV is not set # CONFIG_IUCV is not set
CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS=y
...@@ -43,7 +49,6 @@ CONFIG_ZFCP=y ...@@ -43,7 +49,6 @@ CONFIG_ZFCP=y
# CONFIG_HVC_IUCV is not set # CONFIG_HVC_IUCV is not set
# CONFIG_HW_RANDOM_S390 is not set # CONFIG_HW_RANDOM_S390 is not set
CONFIG_RAW_DRIVER=y CONFIG_RAW_DRIVER=y
# CONFIG_SCLP_ASYNC is not set
# CONFIG_HMC_DRV is not set # CONFIG_HMC_DRV is not set
# CONFIG_S390_TAPE is not set # CONFIG_S390_TAPE is not set
# CONFIG_VMCP is not set # CONFIG_VMCP is not set
...@@ -56,6 +61,7 @@ CONFIG_RAW_DRIVER=y ...@@ -56,6 +61,7 @@ CONFIG_RAW_DRIVER=y
CONFIG_CONFIGFS_FS=y CONFIG_CONFIGFS_FS=y
# CONFIG_MISC_FILESYSTEMS is not set # CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set # CONFIG_NETWORK_FILESYSTEMS is not set
# CONFIG_DIMLIB is not set
CONFIG_PRINTK_TIME=y CONFIG_PRINTK_TIME=y
CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_FS=y CONFIG_DEBUG_FS=y
...@@ -64,7 +70,4 @@ CONFIG_PANIC_ON_OOPS=y ...@@ -64,7 +70,4 @@ CONFIG_PANIC_ON_OOPS=y
# CONFIG_SCHED_DEBUG is not set # CONFIG_SCHED_DEBUG is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_FTRACE is not set # CONFIG_FTRACE is not set
# CONFIG_PFAULT is not set # CONFIG_RUNTIME_TESTING_MENU is not set
# CONFIG_S390_HYPFS_FS is not set
# CONFIG_VIRTUALIZATION is not set
# CONFIG_S390_GUEST is not set
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
* @sliba: storage list information block address * @sliba: storage list information block address
* @sla: storage list address * @sla: storage list address
* @slsba: storage list state block address * @slsba: storage list state block address
* @akey: access key for DLIB * @akey: access key for SLIB
* @bkey: access key for SL * @bkey: access key for SL
* @ckey: access key for SBALs * @ckey: access key for SBALs
* @dkey: access key for SLSB * @dkey: access key for SLSB
...@@ -50,11 +50,10 @@ struct qdesfmt0 { ...@@ -50,11 +50,10 @@ struct qdesfmt0 {
/** /**
* struct qdr - queue description record (QDR) * struct qdr - queue description record (QDR)
* @qfmt: queue format * @qfmt: queue format
* @pfmt: implementation dependent parameter format
* @ac: adapter characteristics * @ac: adapter characteristics
* @iqdcnt: input queue descriptor count * @iqdcnt: input queue descriptor count
* @oqdcnt: output queue descriptor count * @oqdcnt: output queue descriptor count
* @iqdsz: inpout queue descriptor size * @iqdsz: input queue descriptor size
* @oqdsz: output queue descriptor size * @oqdsz: output queue descriptor size
* @qiba: queue information block address * @qiba: queue information block address
* @qkey: queue information block key * @qkey: queue information block key
...@@ -62,8 +61,7 @@ struct qdesfmt0 { ...@@ -62,8 +61,7 @@ struct qdesfmt0 {
*/ */
struct qdr { struct qdr {
u32 qfmt : 8; u32 qfmt : 8;
u32 pfmt : 8; u32 : 16;
u32 : 8;
u32 ac : 8; u32 ac : 8;
u32 : 8; u32 : 8;
u32 iqdcnt : 8; u32 iqdcnt : 8;
...@@ -327,6 +325,7 @@ typedef void qdio_handler_t(struct ccw_device *, unsigned int, int, ...@@ -327,6 +325,7 @@ typedef void qdio_handler_t(struct ccw_device *, unsigned int, int,
* struct qdio_initialize - qdio initialization data * struct qdio_initialize - qdio initialization data
* @cdev: associated ccw device * @cdev: associated ccw device
* @q_format: queue format * @q_format: queue format
* @qdr_ac: feature flags to set
* @adapter_name: name for the adapter * @adapter_name: name for the adapter
* @qib_param_field_format: format for qib_parm_field * @qib_param_field_format: format for qib_parm_field
* @qib_param_field: pointer to 128 bytes or NULL, if no param field * @qib_param_field: pointer to 128 bytes or NULL, if no param field
...@@ -338,6 +337,7 @@ typedef void qdio_handler_t(struct ccw_device *, unsigned int, int, ...@@ -338,6 +337,7 @@ typedef void qdio_handler_t(struct ccw_device *, unsigned int, int,
* @input_handler: handler to be called for input queues * @input_handler: handler to be called for input queues
* @output_handler: handler to be called for output queues * @output_handler: handler to be called for output queues
* @queue_start_poll_array: polling handlers (one per input queue or NULL) * @queue_start_poll_array: polling handlers (one per input queue or NULL)
* @scan_threshold: # of in-use buffers that triggers scan on output queue
* @int_parm: interruption parameter * @int_parm: interruption parameter
* @input_sbal_addr_array: address of no_input_qs * 128 pointers * @input_sbal_addr_array: address of no_input_qs * 128 pointers
* @output_sbal_addr_array: address of no_output_qs * 128 pointers * @output_sbal_addr_array: address of no_output_qs * 128 pointers
......
...@@ -84,6 +84,7 @@ extern int noexec_disabled; ...@@ -84,6 +84,7 @@ extern int noexec_disabled;
extern int memory_end_set; extern int memory_end_set;
extern unsigned long memory_end; extern unsigned long memory_end;
extern unsigned long max_physmem_end; extern unsigned long max_physmem_end;
extern unsigned long __swsusp_reset_dma;
#define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM) #define MACHINE_IS_VM (S390_lowcore.machine_flags & MACHINE_FLAG_VM)
#define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM) #define MACHINE_IS_KVM (S390_lowcore.machine_flags & MACHINE_FLAG_KVM)
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <linux/elf.h> #include <linux/elf.h>
#include <asm/kexec.h>
int arch_kexec_do_relocs(int r_type, void *loc, unsigned long val, int arch_kexec_do_relocs(int r_type, void *loc, unsigned long val,
unsigned long addr) unsigned long addr)
......
...@@ -34,7 +34,7 @@ struct cf_diag_csd { /* Counter set data per CPU */ ...@@ -34,7 +34,7 @@ struct cf_diag_csd { /* Counter set data per CPU */
unsigned char start[PAGE_SIZE]; /* Counter set at event start */ unsigned char start[PAGE_SIZE]; /* Counter set at event start */
unsigned char data[PAGE_SIZE]; /* Counter set at event delete */ unsigned char data[PAGE_SIZE]; /* Counter set at event delete */
}; };
DEFINE_PER_CPU(struct cf_diag_csd, cf_diag_csd); static DEFINE_PER_CPU(struct cf_diag_csd, cf_diag_csd);
/* Counter sets are stored as data stream in a page sized memory buffer and /* Counter sets are stored as data stream in a page sized memory buffer and
* exported to user space via raw data attached to the event sample data. * exported to user space via raw data attached to the event sample data.
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/types.h> #include <linux/types.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/raid/xor.h> #include <linux/raid/xor.h>
#include <asm/xor.h>
static void xor_xc_2(unsigned long bytes, unsigned long *p1, unsigned long *p2) static void xor_xc_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
{ {
......
...@@ -327,6 +327,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, ...@@ -327,6 +327,7 @@ static noinline void do_fault_error(struct pt_regs *regs, int access,
case VM_FAULT_BADACCESS: case VM_FAULT_BADACCESS:
if (access == VM_EXEC && signal_return(regs) == 0) if (access == VM_EXEC && signal_return(regs) == 0)
break; break;
/* fallthrough */
case VM_FAULT_BADMAP: case VM_FAULT_BADMAP:
/* Bad memory access. Check if it is kernel or user space. */ /* Bad memory access. Check if it is kernel or user space. */
if (user_mode(regs)) { if (user_mode(regs)) {
...@@ -336,7 +337,9 @@ static noinline void do_fault_error(struct pt_regs *regs, int access, ...@@ -336,7 +337,9 @@ static noinline void do_fault_error(struct pt_regs *regs, int access,
do_sigsegv(regs, si_code); do_sigsegv(regs, si_code);
break; break;
} }
/* fallthrough */
case VM_FAULT_BADCONTEXT: case VM_FAULT_BADCONTEXT:
/* fallthrough */
case VM_FAULT_PFAULT: case VM_FAULT_PFAULT:
do_no_context(regs); do_no_context(regs);
break; break;
......
...@@ -2424,8 +2424,8 @@ EXPORT_SYMBOL_GPL(gmap_pmdp_idte_global); ...@@ -2424,8 +2424,8 @@ EXPORT_SYMBOL_GPL(gmap_pmdp_idte_global);
* This function is assumed to be called with the guest_table_lock * This function is assumed to be called with the guest_table_lock
* held. * held.
*/ */
bool gmap_test_and_clear_dirty_pmd(struct gmap *gmap, pmd_t *pmdp, static bool gmap_test_and_clear_dirty_pmd(struct gmap *gmap, pmd_t *pmdp,
unsigned long gaddr) unsigned long gaddr)
{ {
if (pmd_val(*pmdp) & _SEGMENT_ENTRY_INVALID) if (pmd_val(*pmdp) & _SEGMENT_ENTRY_INVALID)
return false; return false;
......
...@@ -398,6 +398,7 @@ static void raw3215_irq(struct ccw_device *cdev, unsigned long intparm, ...@@ -398,6 +398,7 @@ static void raw3215_irq(struct ccw_device *cdev, unsigned long intparm,
} }
if (dstat == 0x08) if (dstat == 0x08)
break; break;
/* else, fall through */
case 0x04: case 0x04:
/* Device end interrupt. */ /* Device end interrupt. */
if ((raw = req->info) == NULL) if ((raw = req->info) == NULL)
......
...@@ -677,6 +677,7 @@ tape_generic_remove(struct ccw_device *cdev) ...@@ -677,6 +677,7 @@ tape_generic_remove(struct ccw_device *cdev)
switch (device->tape_state) { switch (device->tape_state) {
case TS_INIT: case TS_INIT:
tape_state_set(device, TS_NOT_OPER); tape_state_set(device, TS_NOT_OPER);
/* fallthrough */
case TS_NOT_OPER: case TS_NOT_OPER:
/* /*
* Nothing to do. * Nothing to do.
...@@ -949,6 +950,7 @@ __tape_start_request(struct tape_device *device, struct tape_request *request) ...@@ -949,6 +950,7 @@ __tape_start_request(struct tape_device *device, struct tape_request *request)
break; break;
if (device->tape_state == TS_UNUSED) if (device->tape_state == TS_UNUSED)
break; break;
/* fallthrough */
default: default:
if (device->tape_state == TS_BLKUSE) if (device->tape_state == TS_BLKUSE)
break; break;
...@@ -1116,6 +1118,7 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) ...@@ -1116,6 +1118,7 @@ __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
case -ETIMEDOUT: case -ETIMEDOUT:
DBF_LH(1, "(%08x): Request timed out\n", DBF_LH(1, "(%08x): Request timed out\n",
device->cdev_id); device->cdev_id);
/* fallthrough */
case -EIO: case -EIO:
__tape_end_request(device, request, -EIO); __tape_end_request(device, request, -EIO);
break; break;
......
...@@ -70,7 +70,7 @@ static void vfio_ccw_async_region_release(struct vfio_ccw_private *private, ...@@ -70,7 +70,7 @@ static void vfio_ccw_async_region_release(struct vfio_ccw_private *private,
} }
const struct vfio_ccw_regops vfio_ccw_async_region_ops = { static const struct vfio_ccw_regops vfio_ccw_async_region_ops = {
.read = vfio_ccw_async_region_read, .read = vfio_ccw_async_region_read,
.write = vfio_ccw_async_region_write, .write = vfio_ccw_async_region_write,
.release = vfio_ccw_async_region_release, .release = vfio_ccw_async_region_release,
......
...@@ -152,6 +152,7 @@ static struct ap_queue_status ap_sm_recv(struct ap_queue *aq) ...@@ -152,6 +152,7 @@ static struct ap_queue_status ap_sm_recv(struct ap_queue *aq)
ap_msg->receive(aq, ap_msg, aq->reply); ap_msg->receive(aq, ap_msg, aq->reply);
break; break;
} }
/* fall through */
case AP_RESPONSE_NO_PENDING_REPLY: case AP_RESPONSE_NO_PENDING_REPLY:
if (!status.queue_empty || aq->queue_count <= 0) if (!status.queue_empty || aq->queue_count <= 0)
break; break;
......
...@@ -801,10 +801,7 @@ static int convert_response_ica(struct zcrypt_queue *zq, ...@@ -801,10 +801,7 @@ static int convert_response_ica(struct zcrypt_queue *zq,
if (msg->cprbx.cprb_ver_id == 0x02) if (msg->cprbx.cprb_ver_id == 0x02)
return convert_type86_ica(zq, reply, return convert_type86_ica(zq, reply,
outputdata, outputdatalength); outputdata, outputdatalength);
/* /* fall through - wrong cprb version is an unknown response */
* Fall through, no break, incorrect cprb version is an unknown
* response
*/
default: /* Unknown response type, this should NEVER EVER happen */ default: /* Unknown response type, this should NEVER EVER happen */
zq->online = 0; zq->online = 0;
pr_err("Cryptographic device %02x.%04x failed and was set offline\n", pr_err("Cryptographic device %02x.%04x failed and was set offline\n",
...@@ -837,10 +834,7 @@ static int convert_response_xcrb(struct zcrypt_queue *zq, ...@@ -837,10 +834,7 @@ static int convert_response_xcrb(struct zcrypt_queue *zq,
} }
if (msg->cprbx.cprb_ver_id == 0x02) if (msg->cprbx.cprb_ver_id == 0x02)
return convert_type86_xcrb(zq, reply, xcRB); return convert_type86_xcrb(zq, reply, xcRB);
/* /* fall through - wrong cprb version is an unknown response */
* Fall through, no break, incorrect cprb version is an unknown
* response
*/
default: /* Unknown response type, this should NEVER EVER happen */ default: /* Unknown response type, this should NEVER EVER happen */
xcRB->status = 0x0008044DL; /* HDD_InvalidParm */ xcRB->status = 0x0008044DL; /* HDD_InvalidParm */
zq->online = 0; zq->online = 0;
...@@ -870,7 +864,7 @@ static int convert_response_ep11_xcrb(struct zcrypt_queue *zq, ...@@ -870,7 +864,7 @@ static int convert_response_ep11_xcrb(struct zcrypt_queue *zq,
return convert_error(zq, reply); return convert_error(zq, reply);
if (msg->cprbx.cprb_ver_id == 0x04) if (msg->cprbx.cprb_ver_id == 0x04)
return convert_type86_ep11_xcrb(zq, reply, xcRB); return convert_type86_ep11_xcrb(zq, reply, xcRB);
/* Fall through, no break, incorrect cprb version is an unknown resp.*/ /* fall through - wrong cprb version is an unknown resp */
default: /* Unknown response type, this should NEVER EVER happen */ default: /* Unknown response type, this should NEVER EVER happen */
zq->online = 0; zq->online = 0;
pr_err("Cryptographic device %02x.%04x failed and was set offline\n", pr_err("Cryptographic device %02x.%04x failed and was set offline\n",
...@@ -900,10 +894,7 @@ static int convert_response_rng(struct zcrypt_queue *zq, ...@@ -900,10 +894,7 @@ static int convert_response_rng(struct zcrypt_queue *zq,
return -EINVAL; return -EINVAL;
if (msg->cprbx.cprb_ver_id == 0x02) if (msg->cprbx.cprb_ver_id == 0x02)
return convert_type86_rng(zq, reply, data); return convert_type86_rng(zq, reply, data);
/* /* fall through - wrong cprb version is an unknown response */
* Fall through, no break, incorrect cprb version is an unknown
* response
*/
default: /* Unknown response type, this should NEVER EVER happen */ default: /* Unknown response type, this should NEVER EVER happen */
zq->online = 0; zq->online = 0;
pr_err("Cryptographic device %02x.%04x failed and was set offline\n", pr_err("Cryptographic device %02x.%04x failed and was set offline\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment