linux/drivers/thunderbolt
Mika Westerberg 03cd45d2e2 thunderbolt: Prevent crash if non-active NVMem file is read
The driver does not populate .reg_read callback for the non-active NVMem
because the file is supposed to be write-only. However, it turns out
NVMem subsystem does not yet support this and expects that the .reg_read
callback is provided. If user reads the binary attribute it triggers
NULL pointer dereference like this one:

  BUG: kernel NULL pointer dereference, address: 0000000000000000
  ...
  Call Trace:
   bin_attr_nvmem_read+0x64/0x80
   kernfs_fop_read+0xa7/0x180
   vfs_read+0xbd/0x170
   ksys_read+0x5a/0xd0
   do_syscall_64+0x43/0x150
   entry_SYSCALL_64_after_hwframe+0x44/0xa9

Fix this in the driver by providing .reg_read callback that always
returns an error.

Reported-by: Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
Fixes: e6b245ccd5 ("thunderbolt: Add support for host and device NVM firmware upgrade")
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200213095604.1074-1-mika.westerberg@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-02-13 04:59:30 -08:00
..
cap.c thunderbolt: Make tb_switch_find_cap() available to other files 2019-12-18 15:40:36 +01:00
ctl.c thunderbolt: Populate PG field in hot plug acknowledgment packet 2019-12-18 15:34:25 +01:00
ctl.h thunderbolt: Populate PG field in hot plug acknowledgment packet 2019-12-18 15:34:25 +01:00
dma_port.c thunderbolt: Convert rest of the driver files to use SPDX identifier 2018-10-02 15:52:08 -07:00
dma_port.h thunderbolt: Convert rest of the driver files to use SPDX identifier 2018-10-02 15:52:08 -07:00
domain.c crypto: shash - remove shash_desc::flags 2019-04-25 15:38:12 +08:00
eeprom.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
icm.c thunderbolt: Do not start firmware unless asked by the user 2019-11-02 12:13:31 +03:00
Kconfig thunderbolt: Update Kconfig entries to USB4 2019-12-18 15:39:18 +01:00
lc.c thunderbolt: Add Display Port adapter pairing and resource management 2019-11-02 12:13:31 +03:00
Makefile thunderbolt: Add support for Time Management Unit 2019-12-18 15:41:15 +01:00
nhi_ops.c thunderbolt: Drop unnecessary read when writing LC command in Ice Lake 2019-10-08 12:08:21 +03:00
nhi_regs.h thunderbolt: Add support for Intel Ice Lake 2019-08-26 12:15:06 +03:00
nhi.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
nhi.h thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
path.c thunderbolt: Add bandwidth management for Display Port tunnels 2019-11-02 12:13:31 +03:00
property.c thunderbolt: property: Fix a missing check of kzalloc 2019-03-28 11:30:47 +03:00
switch.c thunderbolt: Prevent crash if non-active NVMem file is read 2020-02-13 04:59:30 -08:00
tb_msgs.h thunderbolt: Populate PG field in hot plug acknowledgment packet 2019-12-18 15:34:25 +01:00
tb_regs.h thunderbolt: Add support for USB 3.x tunnels 2019-12-18 15:41:40 +01:00
tb.c thunderbolt: Add support for USB 3.x tunnels 2019-12-18 15:41:40 +01:00
tb.h thunderbolt: Add support for USB 3.x tunnels 2019-12-18 15:41:40 +01:00
tmu.c thunderbolt: Add support for Time Management Unit 2019-12-18 15:41:15 +01:00
tunnel.c thunderbolt: Add support for USB 3.x tunnels 2019-12-18 15:41:40 +01:00
tunnel.h thunderbolt: Add support for USB 3.x tunnels 2019-12-18 15:41:40 +01:00
usb4.c thunderbolt: Fix xhci check in usb4_switch_setup() 2020-01-08 16:55:42 +01:00
xdomain.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00