Re: [PATCH] sysfs: return correct error code on unimplemented mmap()

From: Vladimir Zapolskiy
Date: Mon Oct 28 2013 - 13:23:00 EST


On 10/28/13 18:35, Greg Kroah-Hartman wrote:
On Mon, Oct 28, 2013 at 06:28:30PM +0200, Vladimir Zapolskiy wrote:
Both POSIX.1-2008 and Linux Programmer's Manual have a dedicated return
error code for a case, when a file doesn't support mmap(), it's ENODEV.

This change replaces overloaded EINVAL with ENODEV in a situation
described above for sysfs binary files.

Signed-off-by: Vladimir Zapolskiy<vladimir_zapolskiy@xxxxxxxxxx>
Cc: Greg Kroah-Hartman<gregkh@xxxxxxxxxxxxxxxxxxx>

Is this a problem in linux-next or 3.12-rc7 and older kernels? What
userspace tool is breaking here?

The patch itself is against 3.12-rc7, but the same problem can be found
in older kernels as well.

I assume the bugfix is quite safe, because both EINVAL and ENODEV should
be handled by user space tools, however for developers it might be
beneficial to distinguish cases of completely not supported mmap() and
supported but misused mmap() applied to a binary sysfs file. At the
moment from the user space perspective there is no indication of
unsupported mmap() over a file in sysfs.

With best wishes,
Vladimir
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/