[bug report] media: nuvoton: Add driver for NPCM video capture and encoding engine
Hans Verkuil
hverkuil at xs4all.nl
Wed Sep 27 18:04:01 AEST 2023
Hi Dan,
On 26/09/2023 16:23, Dan Carpenter wrote:
> Hello Marvin Lin,
>
> The patch 70721089985c: "media: nuvoton: Add driver for NPCM video
> capture and encoding engine" from Sep 22, 2023 (linux-next), leads to
> the following Smatch static checker warning:
>
> drivers/media/platform/nuvoton/npcm-video.c:1004 npcm_video_raw()
> warn: sleeping in atomic context
Hmm, why didn't my smatch run see this? Does this check require something
special? Does it rely on having run build_kernel_data.sh?
Regards,
Hans
>
> drivers/media/platform/nuvoton/npcm-video.c
> 998 static unsigned int npcm_video_raw(struct npcm_video *video, int index, void *addr)
> 999 {
> 1000 unsigned int width = video->active_timings.width;
> 1001 unsigned int height = video->active_timings.height;
> 1002 unsigned int i, len, offset, bytes = 0;
> 1003
> --> 1004 video->rect[index] = npcm_video_add_rect(video, index, 0, 0, width, height);
> ^^^^^^^^^^^^^^^^^^^
> This function does a sleeping allocation (GFP_KERNEL). However
> npcm_video_irq() is holding spin_lock(&video->lock); so this is a
> sleeping in atomic bug.
>
> 1005
> 1006 for (i = 0; i < height; i++) {
> 1007 len = width * video->bytesperpixel;
> 1008 offset = i * video->bytesperline;
> 1009
> 1010 memcpy(addr + bytes, video->src.virt + offset, len);
> 1011 bytes += len;
> 1012 }
> 1013
> 1014 return bytes;
> 1015 }
>
> regards,
> dan carpenter
More information about the openbmc
mailing list