Thread (14 messages) 14 messages, 3 authors, 2019-08-29

Re: [PATCH v4 1/4] powerpc: make llseek 32bit-only.

From: Arnd Bergmann <arnd@arndb.de>
Date: 2019-08-29 14:33:09
Also in: lkml

On Thu, Aug 29, 2019 at 4:19 PM Michal Suchánek [off-list ref] wrote:
On Thu, 29 Aug 2019 14:57:39 +0200 Arnd Bergmann [off-list ref] wrote:
quoted
On Thu, Aug 29, 2019 at 2:37 PM Michal Suchánek [off-list ref] wrote:
quoted
On Thu, 29 Aug 2019 14:19:46 +0200 Arnd Bergmann [off-list ref] wrote:
quoted
On Thu, Aug 29, 2019 at 12:23 PM Michal Suchanek [off-list ref] wrote:
In particular, I don't see why you single out llseek here, but leave other
syscalls that are not needed on 64-bit machines such as pread64().
Because llseek is not built in fs/ when building 64bit only causing a
link error.

I initially posted patch to build it always but it was pointed out it
is not needed, and  the interface does not make sense on 64bit, and
that platforms that don't have it on 64bit now don't want that useless
code.
Ok, please put that into the changeset description then.

I looked at uses of __NR__llseek in debian code search and
found this one:

https://codesearch.debian.net/show?file=umview_0.8.2-1.2%2Fxmview%2Fum_mmap.c&line=328

It looks like this application will try to use llseek instead of lseek
when built against kernel headers that define __NR_llseek.
The available documentation says this syscall is for 32bit only so
using it on 64bit is undefined. The interface is not well-defined in
that case either.
That's generally not how it works. If there is an existing application
that relies on the behavior of the system call interface, we should not
change it in a way that breaks the application, regardless of what the
documentation says. Presumably nobody cares about umview on
powerpc64, but there might be other applications doing the same
thing.

It looks like sparc64 and parisc64 do the same thing as powerpc64,
and provide llseek() calls that may or may not be used by
applications.

I think your original approach of always building sys_llseek on
powerpc64 is the safe choice here.

     Arnd
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help