sunrpc uses sleep_on to wait until the rpciod thread has died. This could race if rpciod_down is called without lock_kernel. Right now all calls in the main tree are under lock_kernel, but rpciod is an exported function and sleep_on should die. Additionally, I've replaced spin_lock_irqsave() with spin_lock_irq(): rpciod_down sleeps, interrupts are guaranteed to be enabled. -- Manfred