linux - linux 中的 Probe() 方法是否需要重入?

标签 linux linux-kernel linux-device-driver

有一个函数将从两个不同的平台驱动程序调用。我想知道linux的平台驱动核心是否有机会同时调用两个不同设备的probe()?如果是,那么从这两个 probe() 调用的公共(public)函数应该设计为可重入的。

最佳答案

官方规定,内核的每一个函数都必须是可重入的。也许您的函数现在不需要重入,但是谁知道将来会发生什么?

probe 函数调用,更具体地说,AFAIK,它们在开始时的总线枚举期间被序列化。然而,有些人可能会尝试将它们并行化以获得更快的启动。

此外,我们还可以想象一下同时插入两个设备的情况。总线驱动程序可能会在第一次尚未完成时第二次调用 probe 函数。

我的意见是你的探测函数必须是可重入的。

关于linux - linux 中的 Probe() 方法是否需要重入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15288715/

相关文章:

linux - 在目录中查找文件但不在子目录中搜索

linux - 从linux内核模块访问cpu信息

c - 从tasklet运行用户空间进程

linux - 在 Linux 内核 [2.4] 中使用 need_resched 标志和 schedule() 例程

linux - bash: child setpgid (5870 to 5870): docker 上没有这样的进程

javascript - 在javascript中用正则表达式对齐/填充这些字符串中的一些内容

linux - 我的自旋锁有问题吗?

linux - 系统调用(读/写与 ioctl)

linux - 编译linux驱动的步骤

无法使用 I2C 唤醒 Atmel ATSHA204