ATA timeout
Woops
Well this is embarassing...

Maybe if I actually create the semaphore, rather than just allocating
it...
Also, improved use of said semaphore
list push
Reworking blockdev requests
Decrement counter, not pointer
Read blockdevs
Process spinlock order
Made asm block into function