Eu sou um desenvolvedor de kernel, então posso dizer que "depende". Não é impossível que uma remoção e reinserção proativa de um driver possa afastar um bug, como uma maçã por dia versus um médico. Depende do bug.
Um ótimo exemplo de um problema para o qual o rmmod pode ser uma solução alternativa é uma alocação de memória descontrolada no driver (um vazamento de fato ) de tal forma que o driver não perdeu a memória e é capaz de limpá-lo em tempo de rmmod.
Se o bug é instabilidade causada por corrupção, é improvável que seja uma solução alternativa, embora possível. Suponha que o problema seja executado em várias etapas: primeiro, o driver precisa entrar em algum estado S relativamente raro (talvez um estado inválido) e, em seguida, algum evento E relativamente raro deve ocorrer enquanto está nesse estado. (Se E ocorrer e o driver não estiver no estado S, o problema não será reproduzido.) Se rmmod e reinserção tirarem o driver do estado S e forem feitos periodicamente, o problema se tornará menos reprodutível.
Remoção e reinserção podem ter problemas próprios, como a introdução de vazamentos (o driver não limpa tudo no rmmod) ou deixar para trás ponteiros pendentes (o driver desaloca algum objeto, mas não o cancela apropriadamente) de todas as suas associações). Ao desenvolver drivers dinâmicos, um caso de teste deve ser um script de shell que faça um rmmod / insmod em um loop. (Isso não oferece cobertura total, é claro: você também precisa de insmod; various actual use cases of driver; rmmod
em um loop).