From: Slavcho Nikolov <snikolov@okena.com>
To: linux-kernel@vger.kernel.org
Subject: feature request - why not make netif_rx() a pointer?
Date: Tue, 22 Oct 2002 17:01:53 -0400 [thread overview]
Message-ID: <00b201c27a0e$3f82c220$800a140a@SLNW2K> (raw)
Non GPL modules that want to attach themselves between all L2 drivers and
upper layers would not have to incur a performance loss if netif_rx() is
made a
pointer instead of a function (whether or not NET filters are compiled in
the kernel).
Currently control can be easily wrested from netif_rx() and others through
injection of a few instructions into the running kernel (SMC - self
modifying code)
but decreased performance is one sad consequence. Architecture specific
maintenance of SMC slows down portability, too.
The following suggestion would lead to the least amount of modifications.
The global variable "int (*netif_rx)(struct sk_buff *) = &default_netif_rx;"
gets initialized to the address of a function whose body is the default
implementation.
Drivers calling netif_rx explicitly need to be able to see the prototype
"extern int (*netif_rx)(struct sk_buff *);" or else blow up.
No further changes would be necessary because the current 200+ explicit
references
to "netif_rx(skb);" become a poorly written "(*netif_rx)(skb);" call.
S.N.
next reply other threads:[~2002-10-22 20:55 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-10-22 21:01 Slavcho Nikolov [this message]
2002-10-22 21:15 ` feature request - why not make netif_rx() a pointer? Matti Aarnio
2002-10-22 22:42 ` David S. Miller
2002-10-22 23:16 ` Ben Greear
2002-10-22 23:29 ` Jeff Garzik
2002-10-23 15:16 ` Henning P. Schmiedehausen
2002-10-23 16:11 ` Alan Cox
2002-10-23 16:26 ` Henning P. Schmiedehausen
2002-10-22 21:30 ` Alan Cox
2002-10-22 22:40 ` David S. Miller
-- strict thread matches above, loose matches on Subject: below --
2002-10-23 0:39 Jean Tourrilhes
2002-10-23 13:39 ` Slavcho Nikolov
2002-10-23 14:03 ` Chris Friesen
2002-10-23 16:48 ` Jean Tourrilhes
2002-10-23 17:27 ` Ben Greear
2002-10-24 4:13 ` David S. Miller
2002-10-24 9:28 ` Henning P. Schmiedehausen
2002-10-24 10:15 ` David S. Miller
2002-10-24 11:01 ` Henning Schmiedehausen
2002-10-24 13:30 ` Slavcho Nikolov
2002-10-24 13:46 ` David S. Miller
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='00b201c27a0e$3f82c220$800a140a@SLNW2K' \
--to=snikolov@okena.com \
--cc=linux-kernel@vger.kernel.org \
/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