zs driver has a lot of bugs, I wonder if it might be safely used now.
There are places where we divide by zero and current kernels can't
handle appropriate exception (which is the breakpoint exception, btw)
inside the kernel. That's why the driver couldn't be tested. I
implemented the appropriate handler and am heavily testing the zs
driver. After that, I'll post the patch.
Considering your changes, I thing the second way won't help. I don't
understand clearly what is happened, but it looks either ALL_SNT never
set or it has been cleared before we enter the loop. I'll try the first
way ASAP. Tx_BUF_EMP seems to work (at least we didn't encounter any
problems with it in other places).