pointer comparison is unsigned, when returning -errno will be converted to a large positive number, can not enter the error handling branch, therefore, the error code is returned directly and the sem is returned through the parameters. Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>