That's not how it works. Drivers aren't supposed to abort
unconditional suspend -- not without a really good reason (for example,
the device received a wakeup event before it was fully suspended). In
short, suspends should be considered to be _always_ possible.
That's different. Suspend blockers could block (not abort!) regular
suspends, just as they do opportunistic suspends.
But why should they? I mean, if userspace wants to initiate a suspend
that is capable of being blocked by a kernel suspend blocker, then all
it has to do is initiate an opportunistic suspend instead of a normal
suspend.
Alan Stern
--