Commit bb1d73f2 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 fixes from Alexander Gordeev:

 - Reject zero-length writes from userspace that corrupt Debug Facility
   buffers

 - Replace one s390 PCI maintainer

 - Remove SCLP_OFB Kconfig option and enable the guarded code
   unconditionally

 - Replace incorrect use of phys_to_folio() to virt_to_folio() in
   do_secure_storage_access()

* tag 's390-7.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/mm: Fix phys_to_folio() usage in do_secure_storage_access()
  s390/sclp: Remove SCLP_OFB Kconfig option
  MAINTAINERS: Replace one of the maintainers for s390/pci
  s390/debug: Reject zero-length input in debug_input_flush_fn()
  s390/debug: Reject zero-length input before trimming a newline
parents 227c3d54 b95e0e79
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -23555,7 +23555,7 @@ F: drivers/s390/net/
S390 PCI SUBSYSTEM
M:	Niklas Schnelle <schnelle@linux.ibm.com>
M:	Gerald Schaefer <gerald.schaefer@linux.ibm.com>
M:	Gerd Bayer <gbayer@linux.ibm.com>
L:	linux-s390@vger.kernel.org
S:	Supported
F:	Documentation/arch/s390/pci.rst
+8 −0
Original line number Diff line number Diff line
@@ -1414,6 +1414,9 @@ static inline char *debug_get_user_string(const char __user *user_buf,
{
	char *buffer;

	if (!user_len)
		return ERR_PTR(-EINVAL);

	buffer = memdup_user_nul(user_buf, user_len);
	if (IS_ERR(buffer))
		return buffer;
@@ -1584,6 +1587,11 @@ static int debug_input_flush_fn(debug_info_t *id, struct debug_view *view,
	char input_buf[1];
	int rc = user_len;

	if (!user_len) {
		rc = -EINVAL;
		goto out;
	}

	if (user_len > 0x10000)
		user_len = 0x10000;
	if (*offset != 0) {
+1 −1
Original line number Diff line number Diff line
@@ -438,7 +438,7 @@ void do_secure_storage_access(struct pt_regs *regs)
		panic("Unexpected PGM 0x3d with TEID bit 61=0");
	}
	if (is_kernel_fault(regs)) {
		folio = phys_to_folio(addr);
		folio = virt_to_folio((void *)addr);
		if (unlikely(!folio_try_get(folio)))
			return;
		rc = uv_convert_from_secure(folio_to_phys(folio));
+0 −8
Original line number Diff line number Diff line
@@ -85,14 +85,6 @@ config HMC_DRV
	  transfer cache size from its default value 0.5MB to N bytes. If N
	  is zero, then no caching is performed.

config SCLP_OFB
	def_bool n
	prompt "Support for Open-for-Business SCLP Event"
	depends on S390
	help
	  This option enables the Open-for-Business interface to the s390
	  Service Element.

config S390_UV_UAPI
	def_tristate m
	prompt "Ultravisor userspace API"
+0 −6
Original line number Diff line number Diff line
@@ -80,14 +80,11 @@ static void sclp_conf_receiver_fn(struct evbuf_header *evbuf)

static struct sclp_register sclp_conf_register =
{
#ifdef CONFIG_SCLP_OFB
	.send_mask    = EVTYP_CONFMGMDATA_MASK,
#endif
	.receive_mask = EVTYP_CONFMGMDATA_MASK,
	.receiver_fn  = sclp_conf_receiver_fn,
};

#ifdef CONFIG_SCLP_OFB
static int sclp_ofb_send_req(char *ev_data, size_t len)
{
	static DEFINE_MUTEX(send_mutex);
@@ -143,11 +140,9 @@ static const struct bin_attribute ofb_bin_attr = {
	},
	.write = sysfs_ofb_data_write,
};
#endif

static int __init sclp_ofb_setup(void)
{
#ifdef CONFIG_SCLP_OFB
	struct kset *ofb_kset;
	int rc;

@@ -159,7 +154,6 @@ static int __init sclp_ofb_setup(void)
		kset_unregister(ofb_kset);
		return rc;
	}
#endif
	return 0;
}