2004-10-19 12:48:56

by Matthew Wilcox

[permalink] [raw]
Subject: Delete drivers/pci/syscall.c?


Linus, I noticed you touching drivers/pci/syscall.c which made me look
a bit more carefully at that file. It is broken for machines with
overlapping PCI bus numbers in separate domains. There's basically no
way to fix this unless we encode the domain into the upper bits of the
bus number.

The information is already available through /proc and /sys. It's hooked
into the syscall tables of alpha, arm, ia64, ppc, ppc64, sparc and
sparc64. Whatever's using those syscalls must have some kind of backup
strategy for grovelling around in files.

What would break if we just made those syscalls return -ENOSYS?

--
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain


2004-10-19 15:04:22

by Linus Torvalds

[permalink] [raw]
Subject: Re: Delete drivers/pci/syscall.c?



On Tue, 19 Oct 2004, Matthew Wilcox wrote:
>
> Linus, I noticed you touching drivers/pci/syscall.c which made me look
> a bit more carefully at that file. It is broken for machines with
> overlapping PCI bus numbers in separate domains. There's basically no
> way to fix this unless we encode the domain into the upper bits of the
> bus number.
>
> The information is already available through /proc and /sys. It's hooked
> into the syscall tables of alpha, arm, ia64, ppc, ppc64, sparc and
> sparc64. Whatever's using those syscalls must have some kind of backup
> strategy for grovelling around in files.

While the system calls may be broken in theory (multiple domains) they are
not broken in practice (single-domain workstations), and they _were_ used
by X, at least on alpha last time I looked.

And no, expectign X to have a fallback and to understand multiple domains
is likely not a valid expectation.

So right now X may work only on single-domain setups, or on setups where
the video card has a unique address when ignoring the domnain number.
That's pretty much all of the affected machines, so no, I don't think we
can/should remove it.

Will X eventually learn about multiple domains? Maybe.

Linus

2004-10-20 11:10:48

by Arjan van de Ven

[permalink] [raw]
Subject: Re: Delete drivers/pci/syscall.c?

> w X may work only on single-domain setups, or on setups where
> the video card has a unique address when ignoring the domnain number.
> That's pretty much all of the affected machines, so no, I don't think we
> can/should remove it.
>
> Will X eventually learn about multiple domains? Maybe.

can we do something to at least try to avoid other (new) architectures
picking up these syscalls even when we can't fix the existing ones?
Or can we do like a once-per-boot printk to mark then deprecated now so
that eventually we can remove them, and that application writers realize
they are deprecated and wont use them for new code ?