linux-uconsole/drivers/net/ipa
Alex Elder ee67cbc13f net: ipa: memory region array is variable size
[ Upstream commit 440c3247cb ]

IPA configuration data includes an array of memory region
descriptors.  That was a fixed-size array at one time, but
at some point we started defining it such that it was only
as big as required for a given platform.  The actual number
of entries in the array is recorded in the configuration data
along with the array.

A loop in ipa_mem_config() still assumes the array has entries
for all defined memory region IDs.  As a result, this loop can
go past the end of the actual array and attempt to write
"canary" values based on nonsensical data.

Fix this, by stashing the number of entries in the array, and
using that rather than IPA_MEM_COUNT in the initialization loop
found in ipa_mem_config().

The only remaining use of IPA_MEM_COUNT is in a validation check
to ensure configuration data doesn't have too many entries.
That's fine for now.

Fixes: 3128aae8c4 ("net: ipa: redefine struct ipa_mem_data")
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-06-03 09:00:46 +02:00
..
gsi.c net: ipa: set error code in gsi_channel_setup() 2021-02-17 11:02:26 +01:00
gsi.h net: ipa: do not enable GSI interrupt for wakeup 2020-09-18 17:47:07 -07:00
gsi_private.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
gsi_reg.h net: ipa: remove two unused register definitions 2021-04-07 15:00:08 +02:00
gsi_trans.c net: ipa: pass the correct size when freeing DMA memory 2020-12-04 14:38:44 -08:00
gsi_trans.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa.h net: ipa: memory region array is variable size 2021-06-03 09:00:46 +02:00
ipa_clock.c net: ipa: manage endpoints separate from clock 2020-09-18 17:47:07 -07:00
ipa_clock.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_cmd.c net: ipa: fix init header command validation 2021-04-10 13:36:08 +02:00
ipa_cmd.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_data-sc7180.c
ipa_data-sdm845.c net: ipa: no checksum offload for SDM845 LAN RX 2020-06-30 13:10:57 -07:00
ipa_data.h
ipa_endpoint.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-10-15 12:43:21 -07:00
ipa_endpoint.h
ipa_gsi.c net: ipa: include declarations in "ipa_gsi.c" 2020-07-07 12:43:18 -07:00
ipa_gsi.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_interrupt.c net: ipa: enable wakeup on IPA interrupt 2020-09-18 17:47:07 -07:00
ipa_interrupt.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_main.c net: ipa: rename a phandle variable 2020-09-28 18:34:56 -07:00
ipa_mem.c net: ipa: memory region array is variable size 2021-06-03 09:00:46 +02:00
ipa_mem.h
ipa_modem.c net: ipa: modem: add missing SET_NETDEV_DEV() for proper sysfs links 2021-01-23 16:03:59 +01:00
ipa_modem.h
ipa_qmi.c net: ipa: terminate message handler arrays 2021-03-30 14:31:58 +02:00
ipa_qmi.h
ipa_qmi_msg.c net: ipa: fix QMI structure definition bugs 2020-07-07 12:43:18 -07:00
ipa_qmi_msg.h
ipa_reg.c
ipa_reg.h net: ipa: fix two comments 2020-09-28 18:34:56 -07:00
ipa_smp2p.c
ipa_smp2p.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_table.c net: ipa: fix u32_replace_bits by u32p_xxx version 2020-09-11 17:28:48 -07:00
ipa_table.h net: ipa: fix kerneldoc comments 2020-07-13 17:11:53 -07:00
ipa_uc.c net: ipa: fix two comments 2020-09-28 18:34:56 -07:00
ipa_uc.h
ipa_version.h
Kconfig
Makefile