directly to the userland caller and results in a mysterious EPERM. Instead, return EINVAL or something else sensible depending on the case.