DBDMA descriptors need to be located at 32-byte aligned addresses;
however kmalloc rarely delivers such addresses. The dbdma code
works around that by allocating 63 bytes and re-aligning the
descriptor base afterwards. Hoewever when freeing memory it does
not account for this adjustment and trips the kfree debugcheck:

Correct me if I am wrong, but don't kmalloc et al. return blocks aligned
boundaries of the size rounded up the the next power of two? So if
you need 32-byte aligned addresses, just use a size value of 32 or
greater. You wouldn't have to add 63 and do masking and remember the
membase value as you do in the patch.