From: Andrea Arcangeli <andrea@suse.de>
To: Ingo Molnar <mingo@redhat.com>
Cc: Tigran Aivazian <tigran@aivazian.fsnet.co.uk>,
Alan Cox <alan@lxorguk.ukuu.org.uk>,
Keith Owens <kaos@ocs.com.au>,
Marcelo Tosatti <marcelo@conectiva.com.br>,
Arjan van de Ven <arjanv@redhat.com>,
Hugh Dickins <hugh@veritas.com>,
Stelian Pop <stelian.pop@fr.alcove.com>,
Linus Torvalds <torvalds@transmeta.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2.5.5] do export vmalloc_to_page to modules...
Date: Thu, 4 Apr 2002 18:44:05 +0200 [thread overview]
Message-ID: <20020404184405.C32431@dualathlon.random> (raw)
In-Reply-To: <Pine.LNX.4.33.0204041245340.1475-100000@einstein.homenet> <Pine.LNX.4.44.0204040747260.25330-100000@devserv.devel.redhat.com>
On Thu, Apr 04, 2002 at 08:26:50AM -0500, Ingo Molnar wrote:
> the moment you start to argue 'but why cannot we just add this set of
> EXPORTs and put our binary-only modules here and there' you are in essence
> questioning our freedom to specify the license of our work. You are
> abusing the internal modularization mechanizm to put in code that we
> cannot debug, cannot read and cannot develop and cannot support in any
> reasonable way. It's like exchanging kernel/sched.o with your binary-only
adding export symbol here and there it's the same thing you did in the
redhat kernel and in your tux patches here:
diff -urN net-ref/net/netsyms.c net/net/netsyms.c
--- net-ref/net/netsyms.c Mon Feb 25 22:05:09 2002
+++ net/net/netsyms.c Tue Mar 26 19:56:32 2002
@@ -108,6 +108,8 @@
EXPORT_SYMBOL(sock_create);
EXPORT_SYMBOL(sock_alloc);
EXPORT_SYMBOL(sock_release);
+EXPORT_SYMBOL(sock_map_fd);
+EXPORT_SYMBOL(sockfd_lookup);
EXPORT_SYMBOL(sock_setsockopt);
EXPORT_SYMBOL(sock_getsockopt);
EXPORT_SYMBOL(sock_sendmsg);
@@ -324,6 +326,7 @@
EXPORT_SYMBOL(memcpy_fromiovecend);
EXPORT_SYMBOL(csum_partial_copy_fromiovecend);
EXPORT_SYMBOL(tcp_v4_lookup_listener);
+EXPORT_SYMBOL(cleanup_rbuf);
/* UDP/TCP exported functions for TCPv6 */
EXPORT_SYMBOL(udp_ioctl);
EXPORT_SYMBOL(udp_connect);
@@ -341,6 +344,7 @@
EXPORT_SYMBOL(tcp_getsockopt);
EXPORT_SYMBOL(tcp_recvmsg);
EXPORT_SYMBOL(tcp_send_synack);
+EXPORT_SYMBOL(tcp_send_skb);
EXPORT_SYMBOL(tcp_check_req);
EXPORT_SYMBOL(tcp_child_process);
EXPORT_SYMBOL(tcp_parse_options);
There is no difference at all with what you did above and with my
removal of the _GPL tag from the vmalloc_to_page and the above patch in
tux. According to Alan also the above if done in the US is equivalent
to:
- subverting a digital rights management system
[5 years jail in the USA]
- breaking a license
There's no difference at all, you're also exposing those GPL functions
to potential non GPL drivers out there, without asking all the authors
and contributors of such code first.
This shows how much Alan claim can hold legally, if it can then you're
in trouble in the first place. There's not such thing as a "legal"
kernel that defines the allowed EXPORT_SYMBOL, all kernel trees out
there can be modifed freely, they all have the same legal rights, you
haven't more right than me to add EXPORT_SYMBOL here and there for tux
and altering the EXPORT_SYMBOL has nothing to do with the licence of the
exported sourcecode. It's not that if you do it for tux then I cannot do
it for my own module (no matter if it's binary only or not, that still
is "subverting a digital rights management system" according to Alan).
And the whole point is that it doesn't matter if the module calls
vmalloc_to_page or tcp_send_skb directly via EXPORT_SYMBOL or not, still
the non GPL module can call it indirectly. See below:
For istance I can very well implement a kernel function under the GPL
into the kernel called vmalloc_to_page_for_nongpl, and then I can export
such function that incidentally goes to recall vmalloc_to_page. And
that's perfectly legal because vmalloc_to_page_for_nongpl is GPL and it can call
vmalloc_to_page. Now if you claim that that's not legal, then I claim
all binary only drivers out there are completly illegal, because they
all goes to recall shrink_cache indirectly, and nobody ever asked me if
shrink_cache can be recalled indirectly from a non GPL module.
So unless I've really the right to make all the GPL drivers out there
illegal to use in 2.4 and 2.2, then you can always write GPL wrappers,
to work around the _GPL tagged symbols and this in turn means the _GPL
tag is completly useless and it should be avoided and that we can export
whatever we need.
My understanding is that what the GPL forbids, is for Microsoft to take
your sched.c module and to put it into Windows, that's where BSD is very
bad about. The only thing that can be hidden is the part they wrote
themself, just like with device drivers, the hidden part is the device
driver, they cannot take the kernel and release a binary only statically
linked kernel, only their part can be hidden, your part has to remain
open and if they want to change it their changes must remain open. All
the other arguing about EXPORT_SYMBOL legal issues cannot hold legally I
think, they're emotional and about "moral abuse", not about anything
legal or logical or technical or priorly written anywhere.
Now if my understanding is wrong, I'd like to know of course, I'm not
expert here, but the only logical thing I'm sure about is that if it's
illegal for me to export my GPL wrapper then I've just the right to
make all non GPL drivers illegal, that is the only logical sure thing
that can be deducted. And yes, I'd be really happy if I'd that right.
Everybody should realize that binary only modules are inferior and that
it's a great pain to deal with them and they should be avoided to all
possible extents. I said, I ignore them, I never used a binary only
module in my life, and finally I will break them without care (not
intentionally though). The reason I'm looking into this issue is infact
that I _broke_ them with pte-highmem and so I wanted to teach those guys
that they've to use vmalloc_to_page instead if they want their driver to
work correctly with >800M of ram.
Andrea
next prev parent reply other threads:[~2002-04-04 16:45 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-20 13:13 [PATCH 2.5.5] do export vmalloc_to_page to modules Stelian Pop
2002-02-20 16:00 ` Hugh Dickins
2002-02-20 16:01 ` Arjan van de Ven
2002-04-03 16:21 ` Andrea Arcangeli
2002-04-03 17:43 ` Alan Cox
2002-04-03 18:13 ` Andrea Arcangeli
2002-04-03 19:11 ` Alan Cox
2002-04-03 19:23 ` Andrea Arcangeli
2002-04-03 20:05 ` Tigran Aivazian
2002-04-03 20:27 ` Tigran Aivazian
2002-04-03 21:22 ` Alan Cox
2002-04-03 21:26 ` Tigran Aivazian
2002-04-03 21:48 ` Alan Cox
2002-04-03 19:03 ` Tigran Aivazian
2002-04-03 19:10 ` Linus Torvalds
2002-04-03 19:19 ` Tigran Aivazian
2002-04-03 19:24 ` Linus Torvalds
2002-04-03 21:05 ` Tigran Aivazian
2002-04-03 21:25 ` Alan Cox
2002-04-04 6:43 ` Keith Owens
2002-04-04 10:22 ` Tigran Aivazian
2002-04-04 10:35 ` Arjan van de Ven
2002-04-04 11:54 ` Alan Cox
2002-04-04 12:01 ` Tigran Aivazian
2002-04-04 12:31 ` Adrian Bunk
2002-04-04 12:48 ` Russell King
2002-04-04 12:40 ` Russell King
2002-04-04 12:46 ` Tigran Aivazian
2002-04-05 7:29 ` David Schwartz
2002-04-05 8:24 ` Adrian Bunk
2002-04-05 8:28 ` David Schwartz
2002-04-04 13:26 ` Ingo Molnar
2002-04-04 15:21 ` Rik van Riel
2002-04-05 9:25 ` Paul Gortmaker
2002-04-04 15:35 ` Tigran Aivazian
2002-04-04 16:55 ` Andrea Arcangeli
2002-04-04 17:16 ` Christoph Hellwig
2002-04-04 17:46 ` Ingo Molnar
2002-04-04 17:59 ` Arjan van de Ven
2002-04-04 18:15 ` Rik van Riel
2002-04-05 0:47 ` Linux kernel and binary drivers (was: [PATCH 2.5.5] do export vmalloc_to_page to modules...) Steffen Persvold
2002-04-04 15:55 ` [PATCH 2.5.5] do export vmalloc_to_page to modules Richard B. Johnson
2002-04-04 16:14 ` Alan Cox
2002-04-04 16:15 ` Peter Horton
2002-04-04 16:23 ` Ingo Molnar
2002-04-04 16:38 ` Michael Clark
2002-04-04 20:57 ` Adrian Bunk
2002-04-04 16:44 ` Andrea Arcangeli [this message]
2002-04-04 17:16 ` Ingo Molnar
2002-04-04 18:00 ` Alan Cox
2002-04-04 16:42 ` Alexander Viro
2002-04-03 19:29 ` Andrea Arcangeli
2002-04-03 19:38 ` Alan Cox
2002-04-03 19:25 ` Linus Torvalds
2002-04-03 19:44 ` Alan Cox
2002-04-03 19:39 ` Linus Torvalds
2002-04-03 20:35 ` Gerd Knorr
2002-04-03 22:17 ` Richard B. Johnson
2002-04-03 22:24 ` Rik van Riel
2002-04-03 22:33 ` Tigran Aivazian
2002-04-03 22:35 ` David S. Miller
2002-04-06 9:08 ` David Woodhouse
2002-04-03 22:39 ` Rik van Riel
2002-04-04 5:59 ` Chris Wedgwood
2002-04-04 12:06 ` Alan Cox
2002-04-04 9:33 ` Ingo Molnar
2002-04-03 19:26 ` Andrea Arcangeli
2002-04-03 19:35 ` Alan Cox
2002-04-05 6:06 ` David Schwartz
2002-04-05 12:48 ` Alan Cox
2002-04-05 18:46 ` David Schwartz
2002-04-05 19:27 ` Alan Cox
2002-04-05 20:05 ` David Schwartz
2002-04-06 17:55 ` Alan Cox
2002-04-03 19:19 ` Alexander Viro
2002-04-03 21:07 ` David Schwartz
2002-04-03 21:33 ` Alan Cox
2002-04-03 21:28 ` Daniel Jacobowitz
2002-04-03 22:09 ` David Schwartz
2002-04-04 6:26 ` Kai Henningsen
2002-04-04 8:44 ` Adrian Bunk
2002-04-04 12:01 ` Alan Cox
2002-02-20 16:27 ` Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2002-04-03 23:47 Petr Vandrovec
2002-04-04 0:19 ` Rik van Riel
2002-04-04 11:54 Petr Vandrovec
[not found] <Pine.LNX.4.44L.0204041217290.18660-100000@imladris.surriel .com>
2002-04-04 16:11 ` Anton Altaparmakov
2002-04-04 16:29 ` Ingo Molnar
[not found] <Pine.LNX.4.44.0204041123410.6422-100000@devserv.devel.redh at.com>
2002-04-04 17:06 ` Anton Altaparmakov
2002-04-04 17:55 ` Alan Cox
2002-04-04 17:52 ` Anton Altaparmakov
2002-04-04 17:27 Nicholas Berry
2002-04-05 13:22 Gareth Hughes
2002-04-09 6:55 Rick A. Hohensee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020404184405.C32431@dualathlon.random \
--to=andrea@suse.de \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=arjanv@redhat.com \
--cc=hugh@veritas.com \
--cc=kaos@ocs.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=mingo@redhat.com \
--cc=stelian.pop@fr.alcove.com \
--cc=tigran@aivazian.fsnet.co.uk \
--cc=torvalds@transmeta.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox