[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