All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] soundwire: fix port_ready[] dynamic allocation in
@ 2020-08-17 17:47 ` Bard Liao
  0 siblings, 0 replies; 19+ messages in thread
From: Bard Liao @ 2020-08-17 17:47 UTC (permalink / raw)
  To: alsa-devel, vkoul
  Cc: vinod.koul, linux-kernel, tiwai, broonie, gregkh, jank,
	srinivas.kandagatla, rander.wang, ranjani.sridharan, hui.wang,
	pierre-louis.bossart, sanyog.r.kale, mengdong.lin, bard.liao

The existing code allocates memory for the total number of ports.
This only works if the ports are contiguous, but will break if e.g. a
Devices uses port0, 1, and 14. The port_ready[] array would contain 3
elements, which would lead to an out-of-bounds access. Conversely in
other cases, the wrong port index would be used leading to timeouts on
prepare.

This can be fixed by allocating for the worst-case of 15
ports (DP0..DP14). In addition since the number is now fixed, we can
use an array instead of a dynamic allocation.

Pierre-Louis Bossart (2):
  soundwire: add definition for maximum number of ports
  soundwire: fix port_ready[] dynamic allocation in mipi_disco and ASoC
    codecs

 drivers/soundwire/mipi_disco.c  | 18 +-----------------
 drivers/soundwire/slave.c       |  4 ++++
 include/linux/soundwire/sdw.h   |  5 +++--
 sound/soc/codecs/max98373-sdw.c | 15 +--------------
 sound/soc/codecs/rt1308-sdw.c   | 14 +-------------
 sound/soc/codecs/rt5682-sdw.c   | 15 +--------------
 sound/soc/codecs/rt700-sdw.c    | 15 +--------------
 sound/soc/codecs/rt711-sdw.c    | 15 +--------------
 sound/soc/codecs/rt715-sdw.c    | 33 +--------------------------------
 9 files changed, 14 insertions(+), 120 deletions(-)

-- 
2.17.1


^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2020-08-21  5:16 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-17 17:47 [PATCH 0/2] soundwire: fix port_ready[] dynamic allocation in Bard Liao
2020-08-17 17:47 ` Bard Liao
2020-08-17 17:47 ` [PATCH 1/2] soundwire: add definition for maximum number of ports Bard Liao
2020-08-17 17:47   ` Bard Liao
2020-08-18  6:35   ` Vinod Koul
2020-08-18  6:35     ` Vinod Koul
2020-08-18  6:53     ` Liao, Bard
2020-08-18  6:53       ` Liao, Bard
2020-08-18  8:31       ` Vinod Koul
2020-08-18  8:31         ` Vinod Koul
2020-08-17 17:47 ` [PATCH 2/2] soundwire: fix port_ready[] dynamic allocation in mipi_disco and ASoC codecs Bard Liao
2020-08-17 17:47   ` Bard Liao
2020-08-18  6:36   ` Vinod Koul
2020-08-18  6:36     ` Vinod Koul
2020-08-18 12:09     ` Pierre-Louis Bossart
2020-08-18 12:09       ` Pierre-Louis Bossart
2020-08-18 13:50       ` Pierre-Louis Bossart
2020-08-21  5:15       ` Vinod Koul
2020-08-21  5:15         ` Vinod Koul

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.