On line 846, there is the following code, where param_cmdw_submitcnt_ff is 20 bit register and param_cmdw_count_minus1_ff is 24 bit register.
if (param_cmdw_repeatop_valid && (param_cmdw_submitcnt_ff != param_cmdw_count_minus1_ff))
param_cmdw_disable_submitincr <= 1'b1;
They cannot compare with each other.
This might be the reason why CMD is repeated 0x100000 times and becomes stuck.
This issue is fixed starting in Vivado 2014.3.