add the change from kernel branch