kernel: handle IS_ERR() properly