Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn> (in patch v5)