Check the kernel log for the source of the SIGBUS signal, if this is really a misaligned access it should've caused a data abort exception.
If origin was allocated misaligned, shouldn't the exception already happen earlier, like when writing origin.x? I'm pretty sure this shouldn't get...