netdev
[Top] [All Lists]

Re: [PATCH] (4/25) sk98: change #define to typedef

To: Mirko Lindner <mlindner@xxxxxxxxxxxxx>
Subject: Re: [PATCH] (4/25) sk98: change #define to typedef
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 17 Nov 2004 15:01:34 +0000
Cc: Stephen Hemminger <shemminger@xxxxxxxx>, Jeff Garzik <jgarzik@xxxxxxxxx>, Mirko Lindner <demon@xxxxxxxxxxxx>, netdev@xxxxxxxxxxx, Ralph Roesler <rroesler@xxxxxxxxxxxxx>
In-reply-to: <419A231F.4020104@syskonnect.de>
References: <419A231F.4020104@syskonnect.de>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.1i
> Note that the kernel BSD sk driver was _not_ written by SysKonnect and 
> only supports Genesis and Yukon1; linux supports Genesis (single and 
> dual), Yukon1, Yukon Plus, Yukon EC, Yukon FE and Yukon2 (single and 
> dual).

They have Yukon2 support for while - unlike Linux.

> The BSD sk driver supports substantially less functionality than 
> the Linux driver. For example, there is no link failover capability in 
> the sk driver;

Which isn't something that belongs into a driver anyway.  It also
means you common code is obsfucated enough that no one noticed :)

> For instance the symbol SK_IOC mentioned in your mail:
> 
> > -#define SK_IOC char __iomem *
> > +typedef void __iomem *SK_IOC;
> 
> is used in a large number of OS independent driver files (e.g. skvpd.c).
> The -for instance- file skvpd.c used by our Linux driver is used
> at the same time without any changes by all our other drivers running
> on other operating systems (e.g. Solaris, Windows).
> 
> This is the reason why we need to redefine this symbol to the Linux
> specific implementation (void __iomem).

And you still haven't explained why your common code uses such
a broken structure instead of having some semi-opaque private data
passed around everywhere.

Also note that we don't new drivers using such horrible "common code"
anymore, you can be happy you sneaked it in at all a few years ago.


<Prev in Thread] Current Thread [Next in Thread>