Mutexes should work just fine in irqs-off sections - they'll safely
save/restore interrupts, even the debug variants.
We used to have code in the mutex code that unconditionally enabled
interrupts (a spin_unlock_irq() iirc) - but we fixed that pretty
early on because it surprised some early boot code. Maybe this is
the case you remember?