From: Jeff Garzik <jgarzik@pobox.com>
To: "David S. Miller" <davem@redhat.com>
Cc: willy@debian.org, netdev@oss.sgi.com
Subject: Re: [PATCH] ethtool_ops rev 4
Date: Fri, 01 Aug 2003 19:09:35 -0400 [thread overview]
Message-ID: <3F2AF32F.7090201@pobox.com> (raw)
In-Reply-To: <20030801153439.4a324c36.davem@redhat.com>
David S. Miller wrote:
> On Fri, 01 Aug 2003 18:35:31 -0400
> Jeff Garzik <jgarzik@pobox.com> wrote:
>
>
>>We want to provide a sane, ifdef-free path to kcompat, where feasible.
>
>
> I don't believe it's possible with netdev_ops, without
> undoing the entire purpose of what netdev_ops is trying
> to accomplish (elimination of code duplication).
>
> Show me, in code not words, how you are able to accomplish
> this with SET_NETDEV_OPS() or whatever. I will not read
> english text describing the scheme, I will read only code :)
Read kcompat. Then:
#define SET_ETHTOOL_OPS kcompat_set_ethtool_ops
#define DO_ETHTOOL_OPS /* duplicate net/core/ethtool.c, basically */
I would define both of these in Matthew's patch, but one only _needs_ to
define SET_ETHTOOL_OPS, so I pushed for the latter course.
So why is SET_ETHTOOL_OPS needed? It covered up the one place
It intentionally follows the same design as SET_MODULE_OWNER, and for
the same purpose: hiding what would otherwise be a naked struct deref
to a struct member that does not exist on an older kernel.
Hiding naked struct derefs is also the reason I created
pci_{get,drv}_drvdata, pci_resource_*, etc. Back compat is really a big
syntactic sugar game, and naked struct derefs are really the only big
thorn in the side. Everything else can be beaten down with syntactic
sugar behind the scenes, that never ever gets merged into the upstream
kernel.
Jeff
next prev parent reply other threads:[~2003-08-01 23:09 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-08-01 15:02 [PATCH] ethtool_ops rev 4 Matthew Wilcox
2003-08-01 15:40 ` Jeff Garzik
2003-08-01 15:46 ` Matthew Wilcox
2003-08-01 16:25 ` Jeff Garzik
2003-08-01 20:20 ` David S. Miller
2003-08-01 22:26 ` Jeff Garzik
2003-08-01 22:32 ` David S. Miller
2003-08-01 23:01 ` Jeff Garzik
2003-08-01 23:01 ` David S. Miller
2003-08-01 23:17 ` Jeff Garzik
2003-08-01 23:19 ` David S. Miller
2003-08-01 23:42 ` Jeff Garzik
2003-08-01 23:43 ` David S. Miller
2003-08-01 22:35 ` Jeff Garzik
2003-08-01 22:34 ` David S. Miller
2003-08-01 23:09 ` Jeff Garzik [this message]
2003-08-01 23:08 ` David S. Miller
2003-08-01 23:35 ` Jeff Garzik
2003-08-01 23:34 ` David S. Miller
2003-08-02 22:21 ` Matthew Wilcox
2003-08-02 22:34 ` Jeff Garzik
2003-08-03 0:27 ` Matthew Wilcox
2003-08-03 3:14 ` Jeff Garzik
2003-08-03 14:56 ` Matthew Wilcox
2003-08-03 17:09 ` Jeff Garzik
2003-08-05 14:32 ` Matthew Wilcox
2003-08-03 0:28 ` 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=3F2AF32F.7090201@pobox.com \
--to=jgarzik@pobox.com \
--cc=davem@redhat.com \
--cc=netdev@oss.sgi.com \
--cc=willy@debian.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;
as well as URLs for NNTP newsgroup(s).