Hello,
looks like a bug in 2.4/2.6 kernels:
1. dev_close() function is blocking. it calls schedule() inside and
calls blocking dev_deactivate() function.
2. But... call chain
dev_ioctl() -> dev_ifsioc() -> dev_change_flags() calls dev_close()
under read_lock(&dev_base_lock)...
Bug?
Kirill
Kirill Korotaev wrote:
> Hello,
>
> looks like a bug in 2.4/2.6 kernels:
>
> 1. dev_close() function is blocking. it calls schedule() inside and
> calls blocking dev_deactivate() function.
>
> 2. But... call chain
> dev_ioctl() -> dev_ifsioc() -> dev_change_flags() calls dev_close()
> under read_lock(&dev_base_lock)...
>
> Bug?
dev_change_flags is only called for SIOCSIFFLAGS. dev_ioctl
takes the rtnl semaphore in this case, so no bug.
Regards
Patrick