Just a drive-by comment:
Are you sure about this move of the netdev[channel_idx] initialisation?
What happens if the registered can device is opened before you
initialise the pointer? NULL-deref in es58x_send_msg()?
You generally want the driver data fully initialised before you register
the device so this looks broken.
And either way it is arguably an unrelated change that should go in a
separate patch explaining why it is needed and safe.