是的,这绝对看起来像一个错误。
该tools/
子目录是用户空间工具的集合(顾名思义)。您还可以通过包含几个 C 标准库头文件这一事实来了解这一点。所以这当然不是内核错误(那会非常糟糕),只是virtio
测试工具中的一个小疏忽。
该virtio
测试工具似乎重新定义了一些内核 API 来模拟它们在用户空间中的行为。尽管该功能似乎从未在实践中使用过,只是被定义。
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$
它可能是供希望在用户空间中测试一些 virtio 内核代码的人使用的。
在任何情况下,您都可以尝试报告错误。该get_mantainer.pl
脚本建议:
$ perl scripts/get_maintainer.pl -f tools/virtio/linux/kernel.h
Bad divisor in main::vcs_assign: 0
"Michael S. Tsirkin" <mst@redhat.com> (maintainer:VIRTIO CORE AND NET DRIVERS)
Jason Wang <jasowang@redhat.com> (maintainer:VIRTIO CORE AND NET DRIVERS)
virtualization@lists.linux-foundation.org (open list:VIRTIO CORE AND NET DRIVERS)
linux-kernel@vger.kernel.org (open list)