linux/drivers/media
Jean-François Moine 02bbcb9d86 V4L/DVB: gspca - main: Possible race condition in queue management
The problem may occur with SMP:
- a frame is completed at interrupt level (in gspca_frame_add with
  packet_type == LAST_PACKET,
- just after clearing the bit V4L2_BUF_FLAG_QUEUED and before setting
  the bit V4L2_BUF_FLAG_DONE, on the other processor, the application
  tries to requeue the same frame buffer,
- then, the qbuf function succeeds because ALL_FLAGS are not set.
The fix sets and resets the two flags in one instruction.

Reported-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-08-02 16:42:47 -03:00
..
common V4L/DVB: xc5000: Fix a few warnings 2010-08-02 15:31:59 -03:00
dvb V4L/DVB: remove obsolete conditionalizing on DVB_DIBCOM_DEBUG 2010-08-02 16:42:46 -03:00
IR V4L/DVB: IR/mceusb: more streamlining of device init 2010-08-02 16:42:43 -03:00
radio V4L/DVB: si470x: -EINVAL overwritten in si470x_vidioc_s_tuner() 2010-08-02 16:42:44 -03:00
video V4L/DVB: gspca - main: Possible race condition in queue management 2010-08-02 16:42:47 -03:00
Kconfig V4L/DVB (13612): IR: Move common IR code to drivers/media/IR 2009-12-16 00:18:42 -02:00
Makefile V4L/DVB (13612): IR: Move common IR code to drivers/media/IR 2009-12-16 00:18:42 -02:00