Commit b7b8a44f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull char/misc driver fixes from Greg KH:
 "Here are a number of small driver fixes for 5.2-rc6

  Nothing major, just fixes for reported issues:
   - soundwire fixes
   - thunderbolt fixes
   - MAINTAINERS update for fpga maintainer change
   - binder bugfix
   - habanalabs 64bit pointer fix
   - documentation updates

  All of these have been in linux-next with no reported issues"

* tag 'char-misc-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
  habanalabs: use u64_to_user_ptr() for reading user pointers
  doc: fix documentation about UIO_MEM_LOGICAL using
  MAINTAINERS / Documentation: Thorsten Scherer is the successor of Gavin Schenk
  docs: fb: Add TER16x32 to the available font names
  MAINTAINERS: fpga: hand off maintainership to Moritz
  thunderbolt: Implement CIO reset correctly for Titan Ridge
  binder: fix possible UAF when freeing buffer
  thunderbolt: Make sure device runtime resume completes before taking domain lock
  soundwire: intel: set dai min and max channels correctly
  soundwire: stream: fix bad unlock balance
  soundwire: stream: fix out of boundary access on port properties
parents cf242421 6f828c55
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
What:		/sys/bus/siox/devices/siox-X/active
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		On reading represents the current state of the bus. If it
		contains a "0" the bus is stopped and connected devices are
@@ -12,7 +12,7 @@ Description:

What:		/sys/bus/siox/devices/siox-X/device_add
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Write-only file. Write

@@ -27,13 +27,13 @@ Description:

What:		/sys/bus/siox/devices/siox-X/device_remove
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Write-only file. A single write removes the last device in the siox chain.

What:		/sys/bus/siox/devices/siox-X/poll_interval_ns
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Defines the interval between two poll cycles in nano seconds.
		Note this is rounded to jiffies on writing. On reading the current value
@@ -41,33 +41,33 @@ Description:

What:		/sys/bus/siox/devices/siox-X-Y/connected
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Read-only value. "0" means the Yth device on siox bus X isn't "connected" i.e.
		communication with it is not ensured. "1" signals a working connection.

What:		/sys/bus/siox/devices/siox-X-Y/inbytes
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Read-only value reporting the inbytes value provided to siox-X/device_add

What:		/sys/bus/siox/devices/siox-X-Y/status_errors
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Counts the number of time intervals when the read status byte doesn't yield the
		expected value.

What:		/sys/bus/siox/devices/siox-X-Y/type
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Read-only value reporting the type value provided to siox-X/device_add.

What:		/sys/bus/siox/devices/siox-X-Y/watchdog
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Read-only value reporting if the watchdog of the siox device is
		active. "0" means the watchdog is not active and the device is expected to
@@ -75,13 +75,13 @@ Description:

What:		/sys/bus/siox/devices/siox-X-Y/watchdog_errors
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Read-only value reporting the number to time intervals when the
		watchdog was active.

What:		/sys/bus/siox/devices/siox-X-Y/outbytes
KernelVersion:	4.16
Contact:	Gavin Schenk <g.schenk@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Contact:	Thorsten Scherer <t.scherer@eckelmann.de>, Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Description:
		Read-only value reporting the outbytes value provided to siox-X/device_add.
+2 −2
Original line number Diff line number Diff line
@@ -276,8 +276,8 @@ fields of ``struct uio_mem``:
-  ``int memtype``: Required if the mapping is used. Set this to
   ``UIO_MEM_PHYS`` if you you have physical memory on your card to be
   mapped. Use ``UIO_MEM_LOGICAL`` for logical memory (e.g. allocated
   with :c:func:`kmalloc()`). There's also ``UIO_MEM_VIRTUAL`` for
   virtual memory.
   with :c:func:`__get_free_pages()` but not kmalloc()). There's also
   ``UIO_MEM_VIRTUAL`` for virtual memory.

-  ``phys_addr_t addr``: Required if the mapping is used. Fill in the
   address of your memory block. This address is the one that appears in
+1 −1
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ C. Boot options

        Select the initial font to use. The value 'name' can be any of the
        compiled-in fonts: 10x18, 6x10, 7x14, Acorn8x8, MINI4x6,
        PEARL8x8, ProFont6x11, SUN12x22, SUN8x16, VGA8x16, VGA8x8.
        PEARL8x8, ProFont6x11, SUN12x22, SUN8x16, TER16x32, VGA8x16, VGA8x8.

	Note, not all drivers can handle font with widths not divisible by 8,
        such as vga16fb.
+1 −2
Original line number Diff line number Diff line
@@ -6234,7 +6234,6 @@ F: include/linux/ipmi-fru.h
K:	fmc_d.*register

FPGA MANAGER FRAMEWORK
M:	Alan Tull <atull@kernel.org>
M:	Moritz Fischer <mdf@kernel.org>
L:	linux-fpga@vger.kernel.org
S:	Maintained
@@ -14404,7 +14403,7 @@ F: lib/test_siphash.c
F:	include/linux/siphash.h

SIOX
M:	Gavin Schenk <g.schenk@eckelmann.de>
M:	Thorsten Scherer <t.scherer@eckelmann.de>
M:	Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
R:	Pengutronix Kernel Team <kernel@pengutronix.de>
S:	Supported
+14 −2
Original line number Diff line number Diff line
@@ -1941,8 +1941,18 @@ static void binder_free_txn_fixups(struct binder_transaction *t)

static void binder_free_transaction(struct binder_transaction *t)
{
	struct binder_proc *target_proc = t->to_proc;

	if (target_proc) {
		binder_inner_proc_lock(target_proc);
		if (t->buffer)
			t->buffer->transaction = NULL;
		binder_inner_proc_unlock(target_proc);
	}
	/*
	 * If the transaction has no target_proc, then
	 * t->buffer->transaction has already been cleared.
	 */
	binder_free_txn_fixups(t);
	kfree(t);
	binder_stats_deleted(BINDER_STAT_TRANSACTION);
@@ -3551,10 +3561,12 @@ err_invalid_target_handle:
static void
binder_free_buf(struct binder_proc *proc, struct binder_buffer *buffer)
{
	binder_inner_proc_lock(proc);
	if (buffer->transaction) {
		buffer->transaction->buffer = NULL;
		buffer->transaction = NULL;
	}
	binder_inner_proc_unlock(proc);
	if (buffer->async_transaction && buffer->target_node) {
		struct binder_node *buf_node;
		struct binder_work *w;
Loading