Messages received multiple times in QNX when IPU2 + DSP1/IPU1 are active 3.23 ipc-3.23-next 3.23.02.04
authorvwan@ti.com <vwan@ti.com>
Sat, 6 Dec 2014 00:25:14 +0000 (16:25 -0800)
committerRobert Tivy <rtivy@ti.com>
Tue, 9 Dec 2014 18:20:25 +0000 (10:20 -0800)
commit0ab725abfd33892047f4e3f8863d852b1d9314ca
tree637deacf8bf660049ee8f2287321d6d78f462059
parentbece49105dd30090112eaedf45d84ad965c555f4
Messages received multiple times in QNX when IPU2 + DSP1/IPU1 are active

This commit fixes a race condition in QNX where IPU2 is exchanging messages
with host while DSP1 or IPU1 is doing the same. It adds protection in
VirtQueue_addAvailBuf and VirtQueue_getUsedBuf to prevent
a VirtQueue from being accessed concurrently by multiple interrupt handlers,
which has the potential of corrupting the buffer indexing and thus
resulting in some messages to be returned multiple times.

This addresses SDOCM00114194.

Signed-off-by: VW <vwan@ti.com>
qnx/src/ipc3x_dev/ti/syslink/ipc/hlos/knl/transports/virtio/VirtQueue.c