Re: Can't use SYSFS for "Proprietry" driver modules !!!.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mar 27, 2005, at 03:49, Arjan van de Ven wrote:
I think that at the moment the general consensus is that it is ok to use
the Linux kernel APIs (but not the EXPORT_SYMBOL_GPL ones) from binary
modules _if_ _and_ _only_ _if_ the driver was originally written
elsewhere
and ported to the Linux kernel.

I disagree there. Only a few copyright holders of the kernel suggested
that "previously written elsewhere" would be an exception. I haven't,
Alan Cox has been very vocal about that he hasn't. I've not seen my
employer say that it would make that exception either.

And it's a gray area.
Is it ok if you have 5000 lines from another OS and 0 specific/modified
for linux (the technical impossibility of this aside)
Is 4990/10 still good?
is 4900/100 still good ?
is 4500/500 still good ?
is 4000/1000 still good ?
is 2500/2500 still good ?
is 2000/3000 still good ?
is 500/4500 still good ?

if anyone thinks this is a loophole their lawyers better have an answer
for this...

(and note that I'm not claiming that those 4500 lines are a derived work
when used elsewhere. But I do consider it a derived work if it's in a
binary form where it does include linux specific code, and even code
from the linux kernel via say inlines).



<flame type="Binary Driver Hatred">
NOTE: I *strongly* discourage binary drivers. They're crap and frustrate poor PowerPC users like me. Since this is purely a theoretical discussion,
and I want to discourage binary crud, this email is Copyrighted:

This email is Copyright (C) 2005 Kyle Moffett.

The remainder of this email is available under the GNU General Public
License, version 2. See http://www.gnu.org/licenses/gpl.txt for details. THE BELOW MAY NOT BE USED IN A BINARY DRIVER, SO DON'T EVEN THINK ABOUT IT!
</flame>



Ok, so what if the _driver_ provides an API like this:

int start_driver(void);
int stop_driver(void);
void register_alloc(void *(*alloc)(unsigned long));
void register_free(void (*free)(void *));
[... more register functions here, generic functionality ...]

And a BSD licensed bit of glue based on that interface that connects the
driver to a dozen different OSen by wrapping or using their interfaces
directly.

Do you think _that's_ legal?  As far as I can see, even that level is
iffy, but it's a murky issue, and I doubt it will be decided one way or
another until people test it in various courts.

Cheers,
Kyle Moffett

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCM/CS/IT/U d- s++: a18 C++++>$ UB/L/X/*++++(+)>$ P+++(++++)>$
L++++(+++) E W++(+) N+++(++) o? K? w--- O? M++ V? PS+() PE+(-) Y+
PGP+++ t+(+++) 5 X R? tv-(--) b++++(++) DI+ D+ G e->++++$ h!*()>++$ r !y?(-)
------END GEEK CODE BLOCK------


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux