【发布时间】:2022-01-21 11:21:50
【问题描述】:
我的驱动程序的 IOCTL 处理程序将 IOCTL 请求重定向到另一个驱动程序。这曾经很好用,但是当我需要添加对 5.10 内核的支持时,结果发现旧方法不再适用了。现在怎么办?
#define TARGET_ID "TGT"
// ...
char id[sizeof(TARGET_ID)];
// ...
mm_segment_t old_fs = get_fs();
set_fs(KERNEL_DS);
res = __blkdev_driver_ioctl(dev->bdev_raw, 0, SCSI_IOCTL_TARGET_ID, (unsigned long)id);
set_fs(old_fs);
if(0 == strcmp(id, TARGET_ID))
{
PINFO("*** target driver detected! ***\n");
dev->is_target_driver = true;
}
else
{
...
【问题讨论】:
标签: linux module kernel chaining ioctl