El encabezado se usa principalmente para pruebas de espacio de usuario, como virtio_test
.
Del git-log de tools/virtio/virtio_test.c
:
Esta es la parte del espacio de usuario de la herramienta:incluye un montón de stubs para las API de Linux, algo similar a linuxsched. Esto hace posible volver a compilar el código de llamada en el espacio de usuario.
Se implementa un pequeño ejemplo de prueba combinando esto con vhost_testmodule.
Entonces, sí, el código es un poco inseguro (la codificación limpia probaría un NULL
puntero antes de memset()
y rescatar con un mensaje de error apropiado), pero dado que es solo una herramienta de prueba, parece que no se consideró crítico omitir esta prueba.
Sí, eso definitivamente parece un error.
El tools/
subdirectorio es una colección de herramientas de espacio de usuario (como sugiere el nombre). También puede ver esto por el hecho de que se incluyen varios encabezados de biblioteca estándar de C. Entonces, por supuesto, esto no es un error del kernel (que habría sido muy malo), solo un pequeño descuido en el virtio
herramienta de prueba.
Ese virtio
La herramienta de prueba parece redefinir algunas API del kernel para burlarse de su comportamiento en el espacio de usuario. Sin embargo, esa función no parece usarse nunca en la práctica, simplemente se define.
marco:~/git/linux/tools/virtio$ grep -r kzalloc
linux/kernel.h:static inline void *kzalloc(size_t s, gfp_t gfp)
ringtest/ptr_ring.c:static inline void *kzalloc(unsigned size, gfp_t flags)
marco:~/git/linux/tools/virtio$
Probablemente esté destinado a ser utilizado por alguien que desee probar algún código del núcleo virtio en el espacio de usuario.
En cualquier caso, podría intentar reportar el error. El get_mantainer.pl
el guión sugiere:
$ perl scripts/get_maintainer.pl -f tools/virtio/linux/kernel.h
Bad divisor in main::vcs_assign: 0
"Michael S. Tsirkin" <[email protected]> (maintainer:VIRTIO CORE AND NET DRIVERS)
Jason Wang <[email protected]> (maintainer:VIRTIO CORE AND NET DRIVERS)
[email protected] (open list:VIRTIO CORE AND NET DRIVERS)
[email protected] (open list)