spin locks

Is it a performance enhancer to use the following construction when attempting
to allocate a spin lock?

current = KeGetCurrentIrql()
if current == DISPATCH_LEVEL
KeAcquireSpinLockAtDpcLevel(…)
else
KeAcquireSpinLock(…)

similarly

if current == DISPATCH_LEVEL
KeReleaseSpinLockFromDpcLevel(…)
else
KeReleaseSpinLock(…)

Thanks.

Neil