public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* RE: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
@ 2005-07-11  0:15 Moore, Eric Dean
  2005-07-12 20:30 ` Tom Duffy
  2005-07-13  2:16 ` Matt Domsch
  0 siblings, 2 replies; 18+ messages in thread
From: Moore, Eric Dean @ 2005-07-11  0:15 UTC (permalink / raw)
  To: Olaf Hering, Andrew Morton, linux-kernel; +Cc: James Bottomley, linux-scsi

I'd rather you not kill linux_compat.h file.
I use this file for compatibility of driver source 
across various kernel versions.  I provide our
customers with driver builds containing single source 
which needs to compile in kernels 2.6.5( e.g. SLES9),
2.6.8 (e.g. RHEL4), and 2.6.11 ( e.g. SuSE 9.3 Pro).

If you look at our 3.02.18 driver source I submitted to SuSE
for SLES9 SP2, you will see this file is about 3K bytes of
compatibility.  

Eric Moore
LSI Logic Corporation 


On Sunday, July 10, 2005 1:36 PM, Olaf Hering wrote:
> 
> 
> changing CONFIG_LOCALVERSION rebuilds too much, for no 
> appearent reason.
> 
> remove also drivers/message/fusion/linux_compat.h,
> because it is empty after the change
> 
> Signed-off-by: Olaf Hering <olh@suse.de>
> 
> drivers/message/fusion/linux_compat.h |   18 ------------------
> drivers/message/fusion/mptbase.c      |    1 -
> drivers/message/fusion/mptbase.h      |    1 -
> drivers/message/fusion/mptctl.c       |    1 -
> drivers/message/fusion/mptctl.h       |    1 -
> drivers/message/fusion/mptfc.c        |    1 -
> drivers/message/fusion/mptlan.h       |    1 -
> drivers/message/fusion/mptscsih.c     |    1 -
> drivers/message/fusion/mptspi.c       |    1 -
> 9 files changed, 26 deletions(-)
> 
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/linux_compat.h
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/linux_compat.h
> +++ /dev/null
> @@ -1,18 +0,0 @@
> -/* drivers/message/fusion/linux_compat.h */
> -
> -#ifndef FUSION_LINUX_COMPAT_H
> -#define FUSION_LINUX_COMPAT_H
> -
> -#include <linux/version.h>
> -#include <scsi/scsi_device.h>
> -
> -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> -static int inline scsi_device_online(struct scsi_device *sdev)
> -{
> -	return sdev->online;
> -}
> -#endif
> -
> -
> -/*}-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> -=-=-=-=-=-=-=-=*/
> -#endif /* _LINUX_COMPAT_H */
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptbase.c
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptbase.c
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptbase.c
> @@ -47,7 +47,6 @@
> /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> 
> #include <linux/config.h>
> -#include <linux/version.h>
> #include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/errno.h>
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptbase.h
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptbase.h
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptbase.h
> @@ -49,7 +49,6 @@
> #define MPTBASE_H_INCLUDED
> /*{-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> 
> -#include <linux/version.h>
> #include <linux/config.h>
> #include <linux/kernel.h>
> #include <linux/pci.h>
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptctl.c
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptctl.c
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptctl.c
> @@ -45,7 +45,6 @@
> */
> /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> 
> -#include <linux/version.h>
> #include <linux/kernel.h>
> #include <linux/module.h>
> #include <linux/errno.h>
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptctl.h
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptctl.h
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptctl.h
> @@ -49,7 +49,6 @@
> #define MPTCTL_H_INCLUDED
> /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> 
> -#include "linux/version.h"
> 
> 
> /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptlan.h
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptlan.h
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptlan.h
> @@ -66,7 +66,6 @@
> #include <linux/slab.h>
> #include <linux/miscdevice.h>
> #include <linux/spinlock.h>
> -#include <linux/version.h>
> #include <linux/workqueue.h>
> #include <linux/delay.h>
> // #include <linux/trdevice.h>
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptfc.c
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptfc.c
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptfc.c
> @@ -43,7 +43,6 @@
> Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  
> 02111-1307  USA
> */
> /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> -#include "linux_compat.h"	/* linux-2.6 tweaks */
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/init.h>
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptscsih.c
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptscsih.c
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptscsih.c
> @@ -44,7 +44,6 @@
> */
> /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> 
> -#include "linux_compat.h"	/* linux-2.6 tweaks */
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/init.h>
> Index: linux-2.6.13-rc2-mm1/drivers/message/fusion/mptspi.c
> ===================================================================
> --- linux-2.6.13-rc2-mm1.orig/drivers/message/fusion/mptspi.c
> +++ linux-2.6.13-rc2-mm1/drivers/message/fusion/mptspi.c
> @@ -44,7 +44,6 @@
> */
> /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> =-=-=-=-=-=-=-=*/
> 
> -#include "linux_compat.h"	/* linux-2.6 tweaks */
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/init.h>
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-11  0:15 [PATCH 22/82] remove linux/version.h from drivers/message/fus ion Moore, Eric Dean
@ 2005-07-12 20:30 ` Tom Duffy
  2005-07-13  2:16 ` Matt Domsch
  1 sibling, 0 replies; 18+ messages in thread
From: Tom Duffy @ 2005-07-12 20:30 UTC (permalink / raw)
  To: Moore, Eric Dean
  Cc: Olaf Hering, Andrew Morton, linux-kernel, James Bottomley,
	linux-scsi

[-- Attachment #1: Type: text/plain, Size: 875 bytes --]

On Sun, 2005-07-10 at 18:15 -0600, Moore, Eric Dean wrote:
> I'd rather you not kill linux_compat.h file.
> I use this file for compatibility of driver source 
> across various kernel versions.  I provide our
> customers with driver builds containing single source 
> which needs to compile in kernels 2.6.5( e.g. SLES9),
> 2.6.8 (e.g. RHEL4), and 2.6.11 ( e.g. SuSE 9.3 Pro).

It is the general policy that the source in the latest linux kernel only
supports that kernel.  You can certainly keep a compat header for your
customers, but what is in kernel.org should be clean for that version of
the kernel.

> If you look at our 3.02.18 driver source I submitted to SuSE
> for SLES9 SP2, you will see this file is about 3K bytes of
> compatibility.  

Is the 3.02.18 code generally available now?  Can it be cleaned up for
submission to 2.6.13?

-tduffy

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
@ 2005-07-12 20:50 Moore, Eric Dean
  2005-07-12 20:56 ` Tom Duffy
  2005-07-12 22:14 ` David S. Miller
  0 siblings, 2 replies; 18+ messages in thread
From: Moore, Eric Dean @ 2005-07-12 20:50 UTC (permalink / raw)
  To: Tom Duffy
  Cc: Olaf Hering, Andrew Morton, linux-kernel, James Bottomley,
	linux-scsi

> 
> On Sun, 2005-07-10 at 18:15 -0600, Moore, Eric Dean wrote:
> > I'd rather you not kill linux_compat.h file.
> > I use this file for compatibility of driver source 
> > across various kernel versions.  I provide our
> > customers with driver builds containing single source 
> > which needs to compile in kernels 2.6.5( e.g. SLES9),
> > 2.6.8 (e.g. RHEL4), and 2.6.11 ( e.g. SuSE 9.3 Pro).
> 
> It is the general policy that the source in the latest linux 
> kernel only
> supports that kernel.  You can certainly keep a compat header for your
> customers, but what is in kernel.org should be clean for that 
> version of
> the kernel.

Thanks for that info. But Id rather have same files in our maintained
driver,
and whats in the kernel tree.

> 
> > If you look at our 3.02.18 driver source I submitted to SuSE
> > for SLES9 SP2, you will see this file is about 3K bytes of
> > compatibility.  
> 
> Is the 3.02.18 code generally available now?  Can it be cleaned up for
> submission to 2.6.13?
> 


The 3.02.18 driver and the driver in kernel tree are totally different
drivers.
One thing is 3.02.18 has SAS support, and the kernel tree doesn't.    Id
wish
kernel folks would take our SAS drivers.

Eric Moore

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH 22/82] remove linux/version.h from drivers/message/fus  ion
  2005-07-12 20:50 Moore, Eric Dean
@ 2005-07-12 20:56 ` Tom Duffy
  2005-07-12 22:14 ` David S. Miller
  1 sibling, 0 replies; 18+ messages in thread
From: Tom Duffy @ 2005-07-12 20:56 UTC (permalink / raw)
  To: Moore, Eric Dean
  Cc: linux-scsi, James Bottomley, linux-kernel, Andrew Morton,
	Olaf Hering

[-- Attachment #1: Type: text/plain, Size: 3336 bytes --]

On Tue, 2005-07-12 at 14:50 -0600, Moore, Eric Dean wrote:
> The 3.02.18 driver and the driver in kernel tree are totally different
> drivers.
> One thing is 3.02.18 has SAS support, and the kernel tree doesn't.    Id
> wish
> kernel folks would take our SAS drivers.

Is there a patch that applies cleanly to 2.6.13-rc2?  I would like that
as a starting point, at least.

I noticed that the 3.02.18 drivers have a bunch of compile warnings on
the latest kernel.  It won't even link against mm.

make -C /build1/tduffy/openib-work/build/mm/x86_64/ M=/build1/tduffy/openib-work/mptlinux-3.02.18/fusion modules
make[1]: Entering directory `/build1/tduffy/openib-work/build/mm/x86_64'
make -C /build1/tduffy/openib-work/linux-2.6.13-rc-mm O=/build1/tduffy/openib-work/build/mm/x86_64 modules
  CC [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptbase.o
  CC [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.o
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.c: In function ‘mptscsih_probe’:
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.c:1195: warning: implicit declaration of function ‘scsi_set_device’
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.c: At top level:
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.c:3815: warning: initialization from incompatible pointer type
  CC [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptlan.o
  CC [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.o
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.c: In function ‘mptctl_init’:
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.c:3735: warning: implicit declaration of function ‘register_ioctl32_conversion’
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.c:3856: warning: implicit declaration of function ‘unregister_ioctl32_conversion’
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.c: In function ‘mptctl_do_mpt_command’:
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.c:2007: warning: ‘bufIn.len’ may be used uninitialized in this function
/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.c:2008: warning: ‘bufOut.len’ may be used uninitialized in this function
  Building modules, stage 2.
  MODPOST
*** Warning: "scsi_set_device" [/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.ko] undefined!
*** Warning: "unregister_ioctl32_conversion" [/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.ko] undefined!
*** Warning: "register_ioctl32_conversion" [/build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.ko] undefined!
  CC      /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptbase.mod.o
  LD [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptbase.ko
  CC      /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.mod.o
  LD [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptctl.ko
  CC      /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptlan.mod.o
  LD [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptlan.ko
  CC      /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.mod.o
  LD [M]  /build1/tduffy/openib-work/mptlinux-3.02.18/fusion/mptscsih.ko
make[1]: Leaving directory `/build1/tduffy/openib-work/build/mm/x86_64'


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-12 20:50 Moore, Eric Dean
  2005-07-12 20:56 ` Tom Duffy
@ 2005-07-12 22:14 ` David S. Miller
  1 sibling, 0 replies; 18+ messages in thread
From: David S. Miller @ 2005-07-12 22:14 UTC (permalink / raw)
  To: Eric.Moore; +Cc: tduffy, olh, akpm, linux-kernel, James.Bottomley, linux-scsi

From: "Moore, Eric Dean" <Eric.Moore@lsil.com>
Date: Tue, 12 Jul 2005 14:50:19 -0600

> But Id rather have same files in our maintained driver,
> and whats in the kernel tree.

Just think what a mess we'd have on our hands if we let
everyone do that.  Sorry, please don't put compat header
files into the current upstream tree, thanks.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
@ 2005-07-12 22:34 Moore, Eric Dean
  0 siblings, 0 replies; 18+ messages in thread
From: Moore, Eric Dean @ 2005-07-12 22:34 UTC (permalink / raw)
  To: David S. Miller
  Cc: tduffy, olh, akpm, linux-kernel, James.Bottomley, linux-scsi

> > But Id rather have same files in our maintained driver,
> > and whats in the kernel tree.
> 
> Just think what a mess we'd have on our hands if we let
> everyone do that.  Sorry, please don't put compat header
> files into the current upstream tree, thanks.
>

Fine. 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-11  0:15 [PATCH 22/82] remove linux/version.h from drivers/message/fus ion Moore, Eric Dean
  2005-07-12 20:30 ` Tom Duffy
@ 2005-07-13  2:16 ` Matt Domsch
  2005-07-13 14:37   ` Christoph Hellwig
  1 sibling, 1 reply; 18+ messages in thread
From: Matt Domsch @ 2005-07-13  2:16 UTC (permalink / raw)
  To: Moore, Eric Dean
  Cc: Olaf Hering, Andrew Morton, linux-kernel, James Bottomley,
	linux-scsi

Eric, I have to have a similar compat file for the IPMI drivers
backported onto RHEL3, RHEL4, and SLES9.  They aren't in mainline of
course, but each OS has a slightly different copy for its needs, so my
DKMS packages carry it.

In general, this construct:

> > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > -static int inline scsi_device_online(struct scsi_device *sdev)
> > -{
> > -	return sdev->online;
> > -}
> > -#endif

is better tested as:

#ifndef scsi_device_inline
static int inline scsi_device_online(struct scsi_device *sdev)
{
    return sdev->online;
}
#endif

when you can.  It cleanly eliminates the version test, and tests for
exactly what you're looking for - is this function defined.

Thanks,
Matt

-- 
Matt Domsch
Software Architect
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-13  2:16 ` Matt Domsch
@ 2005-07-13 14:37   ` Christoph Hellwig
  0 siblings, 0 replies; 18+ messages in thread
From: Christoph Hellwig @ 2005-07-13 14:37 UTC (permalink / raw)
  To: Matt Domsch
  Cc: Moore, Eric Dean, Olaf Hering, Andrew Morton, linux-kernel,
	James Bottomley, linux-scsi

> In general, this construct:
> 
> > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > > -static int inline scsi_device_online(struct scsi_device *sdev)
> > > -{
> > > -	return sdev->online;
> > > -}
> > > -#endif
> 
> is better tested as:
> 
> #ifndef scsi_device_inline
> static int inline scsi_device_online(struct scsi_device *sdev)
> {
>     return sdev->online;
> }
> #endif

Even better fusion should stop using this function because doing so
is broken.. We tried that long ago but it got stuck somewhere.


^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
@ 2005-07-13 15:11 Moore, Eric Dean
  0 siblings, 0 replies; 18+ messages in thread
From: Moore, Eric Dean @ 2005-07-13 15:11 UTC (permalink / raw)
  To: Christoph Hellwig, Matt Domsch
  Cc: Moore, Eric Dean, Olaf Hering, Andrew Morton, linux-kernel,
	James Bottomley, linux-scsi

On Wednesday, July 13, 2005 8:38 AM, Christoph Hellwig wrote:
> 
> > In general, this construct:
> > 
> > > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > > > -static int inline scsi_device_online(struct scsi_device *sdev)
> > > > -{
> > > > -	return sdev->online;
> > > > -}
> > > > -#endif
> > 
> > is better tested as:
> > 
> > #ifndef scsi_device_inline
> > static int inline scsi_device_online(struct scsi_device *sdev)
> > {
> >     return sdev->online;
> > }
> > #endif
> 
> Even better fusion should stop using this function because doing so
> is broken.. We tried that long ago but it got stuck somewhere.
>

Christoph - We have already fixed the problem long ago; e.g.
remember when you asked me to kill the timers from the eh threads.  
Thus in todays drivers you will not find scsi_device_online called anywhere
in 
the fusion drivers.

I only objected to killing the linux_compat.h file because its being used
in our internal supported drivers, and it makes it easier upgrade path
for maintaining mainstream drivers if that was left behind in the kernel
tree.
However everybody has ambushed me on this stance, so go ahead and kill it.
We'll manage fine without it.

Eric Moore


^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
@ 2005-07-20  0:07 Moore, Eric Dean
  2005-07-20  3:12 ` Matt Domsch
  2005-07-20 17:55 ` Nish Aravamudan
  0 siblings, 2 replies; 18+ messages in thread
From: Moore, Eric Dean @ 2005-07-20  0:07 UTC (permalink / raw)
  To: Matt Domsch
  Cc: Olaf Hering, Andrew Morton, linux-kernel, James Bottomley,
	linux-scsi

On Tuesday, July 12, 2005 8:17 PM, Matt Domsch wrote:
> In general, this construct:
> 
> > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > > -static int inline scsi_device_online(struct scsi_device *sdev)
> > > -{
> > > -	return sdev->online;
> > > -}
> > > -#endif
> 
> is better tested as:
> 
> #ifndef scsi_device_inline
> static int inline scsi_device_online(struct scsi_device *sdev)
> {
>     return sdev->online;
> }
> #endif
> 
> when you can.  It cleanly eliminates the version test, and tests for
> exactly what you're looking for - is this function defined.
> 

What you illustrated above is not going to work.
If your doing #ifndef around a function, such as scsi_device_online, it's
not going to compile
when scsi_device_online is already implemented in the kernel tree.
The routine scsi_device_online is a function, not a define.  For a define
this would work.

I'm trying your example around msleep, msleep_interruptible, and
msecs_to_jiffies, and 
my code simply won't compile in SLES9 SP2(-191).  In SLES9 SP1(-139), these
three routines were not implemented and
your suggestion works.  I won't be able to to a linux version check as this
change occurred between service packs
of the 2.6.5 kernel suse tree.   Anybody on the linux forums have any ideas?

Example:

#ifdef msleep
static void inline msleep(unsigned long msecs)
{
        set_current_state(TASK_UNINTERRUPTIBLE);
        schedule_timeout(msecs_to_jiffies(msecs) + 1);
}
#endif




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20  0:07 Moore, Eric Dean
@ 2005-07-20  3:12 ` Matt Domsch
  2005-07-20  4:28   ` Stephen Rothwell
                     ` (4 more replies)
  2005-07-20 17:55 ` Nish Aravamudan
  1 sibling, 5 replies; 18+ messages in thread
From: Matt Domsch @ 2005-07-20  3:12 UTC (permalink / raw)
  To: Moore, Eric Dean
  Cc: Olaf Hering, Andrew Morton, linux-kernel, James Bottomley,
	linux-scsi

On Tue, Jul 19, 2005 at 06:07:41PM -0600, Moore, Eric Dean wrote:
> On Tuesday, July 12, 2005 8:17 PM, Matt Domsch wrote:
> > In general, this construct:
> > 
> > > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > > > -static int inline scsi_device_online(struct scsi_device *sdev)
> > > > -{
> > > > -	return sdev->online;
> > > > -}
> > > > -#endif
> > 
> > is better tested as:
> > 
> > #ifndef scsi_device_inline
> > static int inline scsi_device_online(struct scsi_device *sdev)
> > {
> >     return sdev->online;
> > }
> > #endif
> > 
> > when you can.  It cleanly eliminates the version test, and tests for
> > exactly what you're looking for - is this function defined.
> > 
> 
> What you illustrated above is not going to work.
> If your doing #ifndef around a function, such as scsi_device_online, it's
> not going to compile
> when scsi_device_online is already implemented in the kernel tree.
> The routine scsi_device_online is a function, not a define.  For a define
> this would work.

Sure it does, function names are defined symbols.

I'm doing exactly this in my backport of the openipmi drivers to RHEL4
and SLES9.

> I'm trying your example around msleep, msleep_interruptible, and
> msecs_to_jiffies, and 
> my code simply won't compile in SLES9 SP2(-191).  In SLES9 SP1(-139), these
> three routines were not implemented and
> your suggestion works.  I won't be able to to a linux version check as this
> change occurred between service packs
> of the 2.6.5 kernel suse tree.   Anybody on the linux forums have any ideas?
> 
> Example:
> 
> #ifdef msleep

#ifndef  you mean.

> static void inline msleep(unsigned long msecs)
> {
>         set_current_state(TASK_UNINTERRUPTIBLE);
>         schedule_timeout(msecs_to_jiffies(msecs) + 1);
> }
> #endif


Thanks,
Matt

-- 
Matt Domsch
Software Architect
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20  3:12 ` Matt Domsch
@ 2005-07-20  4:28   ` Stephen Rothwell
  2005-07-20  5:09   ` Moore, Eric Moore
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 18+ messages in thread
From: Stephen Rothwell @ 2005-07-20  4:28 UTC (permalink / raw)
  To: Matt Domsch
  Cc: Eric.Moore, olh, akpm, linux-kernel, James.Bottomley, linux-scsi

[-- Attachment #1: Type: text/plain, Size: 369 bytes --]

On Tue, 19 Jul 2005 22:12:49 -0500 Matt Domsch <Matt_Domsch@dell.com> wrote:
>
> Sure it does, function names are defined symbols.
> 
> I'm doing exactly this in my backport of the openipmi drivers to RHEL4
> and SLES9.

I missed the smiley, right :-)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20  3:12 ` Matt Domsch
  2005-07-20  4:28   ` Stephen Rothwell
@ 2005-07-20  5:09   ` Moore, Eric Moore
  2005-07-20  8:30   ` Bernd Petrovitsch
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 18+ messages in thread
From: Moore, Eric Moore @ 2005-07-20  5:09 UTC (permalink / raw)
  To: Matt Domsch
  Cc: Olaf Hering, Andrew Morton, linux-kernel, James Bottomley,
	linux-scsi

[-- Attachment #1: Type: text/plain, Size: 875 bytes --]

On Tuesday, July 19, 2005 9:12 PM, Matt Domsch wrote:
>> What you illustrated above is not going to work.
>> If your doing #ifndef around a function, such as scsi_device_online, it's
>> not going to compile
>> when scsi_device_online is already implemented in the kernel tree.
>> The routine scsi_device_online is a function, not a define.  For a define
>> this would work.
>
> Sure it does, function names are defined symbols.
>

No its not compiling for me.
I'm currently building drivers for the DELL DKMS kit.
Trying to add support for SLES9 SP2 support ( -191 kernel).
My driver compiles for SLES9 Base(-97) and SP2(-139) but fails for SP2.
Between SP1 and SP2, they added msleep.

Here is the make.log output that you will find in 
/var/lib/dkms/mptlinux/3.02.52/build
when it fails to compile.

Also attached is linux_compat.h with the changes you have suggested.





[-- Attachment #2: linux_compat.h --]
[-- Type: application/octet-stream, Size: 3477 bytes --]

/* drivers/message/fusion/linux_compat.h */

#ifndef FUSION_LINUX_COMPAT_H
#define FUSION_LINUX_COMPAT_H

#include <linux/version.h>
#include <linux/sched.h>
#include <linux/jiffies.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <scsi/scsi_device.h>
#include <scsi/scsi_cmnd.h>

/* scsi_print_command() came in lk 2.6.8 kernel,
 * prior kernels it was called print_Scsi_Cmnd()
 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8))
extern void print_Scsi_Cmnd(struct scsi_cmnd *cmd);
#else
extern void scsi_print_command(struct scsi_cmnd *cmd);
#endif
static void inline mptscsih_scsi_print_command(struct scsi_cmnd *cmd){
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8))
	print_Scsi_Cmnd(cmd);
#else
	scsi_print_command(cmd);
#endif
}

/* define scsi_device_online which came in lk 2.6.6,
 * to be backward compatible to older variants of lk 2.6
 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
static int inline scsi_device_online(struct scsi_device *sdev)
{
	return sdev->online;
}
#endif

/* define msleep, msleep_interruptible which came in lk 2.6.8
 * to be backward compatible to older variants of lk 2.6
 */
#ifndef msecs_to_jiffies
static inline unsigned long msecs_to_jiffies(const unsigned int m)
{
#if HZ <= 1000 && !(1000 % HZ)
        return (m + (1000 / HZ) - 1) / (1000 / HZ);
#elif HZ > 1000 && !(HZ % 1000)
        return m * (HZ / 1000);
#else
        return (m * HZ + 999) / 1000;
#endif
}
#endif

#ifndef msleep
static void inline msleep(unsigned long msecs)
{
        set_current_state(TASK_UNINTERRUPTIBLE);
        schedule_timeout(msecs_to_jiffies(msecs) + 1);
}
#endif
#ifndef msleep_interruptible
static void inline msleep_interruptible(unsigned long msecs)
{
        set_current_state(TASK_INTERRUPTIBLE);
        schedule_timeout(msecs_to_jiffies(msecs) + 1);
}
#endif

/* define __iomem which came in lk 2.6.9
 * to be backward compatible to older variants of lk 2.6
 */
#ifndef __iomem
#define __iomem
#endif

/* define pm_message_t which came in lk 2.6.11
 * to be backward compatible to older variants of lk 2.6
 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11))
typedef u32 pm_message_t;
#endif

/* exporting of pci_disable_msi which came in lk 2.6.8
 * to be backward compatible to older variants of lk 2.6
 */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8))
static inline void pci_disable_msi(struct pci_dev* dev) {}
#endif

/* defines for SAS controlers, to be eventually added to inlcude/linux/pci_ids.h
 */
#ifndef PCI_DEVICE_ID_LSI_SAS1064
#define PCI_DEVICE_ID_LSI_SAS1064	(0x0050)
#endif

#ifndef PCI_DEVICE_ID_LSI_SAS1066
#define PCI_DEVICE_ID_LSI_SAS1066	(0x005E)
#endif

#ifndef PCI_DEVICE_ID_LSI_SAS1068
#define PCI_DEVICE_ID_LSI_SAS1068	(0x0054)
#endif

#ifndef PCI_DEVICE_ID_LSI_SAS1064A
#define PCI_DEVICE_ID_LSI_SAS1064A	(0x005C)
#endif

#ifndef PCI_DEVICE_ID_LSI_SAS1064E
#define PCI_DEVICE_ID_LSI_SAS1064E	(0x0056)
#endif

#ifndef PCI_DEVICE_ID_LSI_SAS1066E
#define PCI_DEVICE_ID_LSI_SAS1066E	(0x005A)
#endif

#ifndef PCI_DEVICE_ID_LSI_SAS1068E
#define PCI_DEVICE_ID_LSI_SAS1068E	(0x0058)
#endif

#ifndef PCI_DEVICE_ID_LSI_FC939X
#define PCI_DEVICE_ID_LSI_FC939X	(0x0642)
#endif

#ifndef PCI_DEVICE_ID_LSI_FC949X
#define PCI_DEVICE_ID_LSI_FC949X	(0x0640)
#endif

/*}-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
#endif /* _LINUX_COMPAT_H */

[-- Attachment #3: make.log --]
[-- Type: application/octet-stream, Size: 1488 bytes --]

DKMS make.log for mptlinux-3.02.52 for kernel 2.6.5-7.191-smp (i586)
Tue Jul 19 22:42:47 MDT 2005
make: Entering directory `/usr/src/linux-2.6.5-7.191-obj/i386/smp'
make -C /usr/src/linux-2.6.5-7.191 O=/usr/src/linux-2.6.5-7.191-obj/i386/smp modules

WARNING: Symbol version dump /usr/src/linux-2.6.5-7.191-obj/i386/smp/Module.symvers is  missing, modules will have CONFIG_MODVERSIONS disabled.

  CC [M]  /var/lib/dkms/mptlinux/3.02.52/build/mptbase.o
In file included from /var/lib/dkms/mptlinux/3.02.52/build/mptbase.h:58,
                 from /var/lib/dkms/mptlinux/3.02.52/build/mptbase.c:71:
/var/lib/dkms/mptlinux/3.02.52/build/linux_compat.h:45: error: redefinition of `msecs_to_jiffies'
/usr/src/linux-2.6.5-7.191/include/linux/jiffies.h:96: error: `msecs_to_jiffies' previously defined here
/var/lib/dkms/mptlinux/3.02.52/build/linux_compat.h:58: error: conflicting types for `msleep'
/usr/src/linux-2.6.5-7.191/include/linux/delay.h:41: error: previous declaration of `msleep'
/var/lib/dkms/mptlinux/3.02.52/build/linux_compat.h:65: error: conflicting types for `msleep_interruptible'
/usr/src/linux-2.6.5-7.191/include/linux/delay.h:42: error: previous declaration of `msleep_interruptible'
make[3]: *** [/var/lib/dkms/mptlinux/3.02.52/build/mptbase.o] Error 1
make[2]: *** [_module_/var/lib/dkms/mptlinux/3.02.52/build] Error 2
make[1]: *** [modules] Error 2
make: *** [modules] Error 2
make: Leaving directory `/usr/src/linux-2.6.5-7.191-obj/i386/smp'

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20  3:12 ` Matt Domsch
  2005-07-20  4:28   ` Stephen Rothwell
  2005-07-20  5:09   ` Moore, Eric Moore
@ 2005-07-20  8:30   ` Bernd Petrovitsch
  2005-07-20 12:48   ` Matthew Wilcox
  2005-07-20 17:54   ` Nathan Lynch
  4 siblings, 0 replies; 18+ messages in thread
From: Bernd Petrovitsch @ 2005-07-20  8:30 UTC (permalink / raw)
  To: Matt Domsch
  Cc: Moore, Eric Dean, Olaf Hering, Andrew Morton, linux-kernel,
	James Bottomley, linux-scsi

On Tue, 2005-07-19 at 22:12 -0500, Matt Domsch wrote:
> On Tue, Jul 19, 2005 at 06:07:41PM -0600, Moore, Eric Dean wrote:
[...]
> > What you illustrated above is not going to work.
> > If your doing #ifndef around a function, such as scsi_device_online, it's
> > not going to compile
> > when scsi_device_online is already implemented in the kernel tree.
> > The routine scsi_device_online is a function, not a define.  For a define
> > this would work.
> 
> Sure it does, function names are defined symbols.

Defined for the preprocessor or the pure C-compiler or both of them?

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20  3:12 ` Matt Domsch
                     ` (2 preceding siblings ...)
  2005-07-20  8:30   ` Bernd Petrovitsch
@ 2005-07-20 12:48   ` Matthew Wilcox
  2005-07-20 17:54   ` Nathan Lynch
  4 siblings, 0 replies; 18+ messages in thread
From: Matthew Wilcox @ 2005-07-20 12:48 UTC (permalink / raw)
  To: Matt Domsch
  Cc: Moore, Eric Dean, Olaf Hering, Andrew Morton, linux-kernel,
	James Bottomley, linux-scsi

On Tue, Jul 19, 2005 at 10:12:49PM -0500, Matt Domsch wrote:
> > What you illustrated above is not going to work.
> > If your doing #ifndef around a function, such as scsi_device_online, it's
> > not going to compile
> > when scsi_device_online is already implemented in the kernel tree.
> > The routine scsi_device_online is a function, not a define.  For a define
> > this would work.
> 
> Sure it does, function names are defined symbols.

uh, not to the preprocessor, they aren't.

-- 
"Next the statesmen will invent cheap lies, putting the blame upon 
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince 
himself that the war is just, and will thank God for the better sleep 
he enjoys after this process of grotesque self-deception." -- Mark Twain

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20  3:12 ` Matt Domsch
                     ` (3 preceding siblings ...)
  2005-07-20 12:48   ` Matthew Wilcox
@ 2005-07-20 17:54   ` Nathan Lynch
  2005-07-20 18:22     ` Matt Domsch
  4 siblings, 1 reply; 18+ messages in thread
From: Nathan Lynch @ 2005-07-20 17:54 UTC (permalink / raw)
  To: Matt Domsch
  Cc: Moore, Eric Dean, Olaf Hering, Andrew Morton, linux-kernel,
	James Bottomley, linux-scsi

Matt Domsch wrote:
> On Tue, Jul 19, 2005 at 06:07:41PM -0600, Moore, Eric Dean wrote:
> > On Tuesday, July 12, 2005 8:17 PM, Matt Domsch wrote:
> > > In general, this construct:
> > > 
> > > > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > > > > -static int inline scsi_device_online(struct scsi_device *sdev)
> > > > > -{
> > > > > -	return sdev->online;
> > > > > -}
> > > > > -#endif
> > > 
> > > is better tested as:
> > > 
> > > #ifndef scsi_device_inline
> > > static int inline scsi_device_online(struct scsi_device *sdev)
> > > {
> > >     return sdev->online;
> > > }
> > > #endif
> > > 
> > > when you can.  It cleanly eliminates the version test, and tests for
> > > exactly what you're looking for - is this function defined.
> > > 
> > 
> > What you illustrated above is not going to work.
> > If your doing #ifndef around a function, such as scsi_device_online, it's
> > not going to compile
> > when scsi_device_online is already implemented in the kernel tree.
> > The routine scsi_device_online is a function, not a define.  For a define
> > this would work.
> 
> Sure it does, function names are defined symbols.
> 

$ cat foo.c
static int foo(void) { return 0; }
#ifndef foo
static int foo(void) { return 0; }
#endif

$ gcc -c foo.c
foo.c:3: error: redefinition of 'foo'
foo.c:1: error: previous definition of 'foo' was here

I believe #ifdef/#ifndef can test only preprocessor symbols.

Nathan

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20  0:07 Moore, Eric Dean
  2005-07-20  3:12 ` Matt Domsch
@ 2005-07-20 17:55 ` Nish Aravamudan
  1 sibling, 0 replies; 18+ messages in thread
From: Nish Aravamudan @ 2005-07-20 17:55 UTC (permalink / raw)
  To: Moore, Eric Dean
  Cc: Matt Domsch, Olaf Hering, Andrew Morton, linux-kernel,
	James Bottomley, linux-scsi

On 7/19/05, Moore, Eric Dean <Eric.Moore@lsil.com> wrote:
> On Tuesday, July 12, 2005 8:17 PM, Matt Domsch wrote:
> > In general, this construct:
> >
> > > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > > > -static int inline scsi_device_online(struct scsi_device *sdev)
> > > > -{
> > > > - return sdev->online;
> > > > -}
> > > > -#endif
> >
> > is better tested as:
> >
> > #ifndef scsi_device_inline
> > static int inline scsi_device_online(struct scsi_device *sdev)
> > {
> >     return sdev->online;
> > }
> > #endif
> >
> > when you can.  It cleanly eliminates the version test, and tests for
> > exactly what you're looking for - is this function defined.
> >
> 
> What you illustrated above is not going to work.
> If your doing #ifndef around a function, such as scsi_device_online, it's
> not going to compile
> when scsi_device_online is already implemented in the kernel tree.
> The routine scsi_device_online is a function, not a define.  For a define
> this would work.
> 
> I'm trying your example around msleep, msleep_interruptible, and
> msecs_to_jiffies, and
> my code simply won't compile in SLES9 SP2(-191).  In SLES9 SP1(-139), these
> three routines were not implemented and
> your suggestion works.  I won't be able to to a linux version check as this
> change occurred between service packs
> of the 2.6.5 kernel suse tree.   Anybody on the linux forums have any ideas?
> 
> Example:
> 
> #ifdef msleep
> static void inline msleep(unsigned long msecs)
> {
>         set_current_state(TASK_UNINTERRUPTIBLE);
>         schedule_timeout(msecs_to_jiffies(msecs) + 1);
> }
> #endif

Just an FYI, if you are trying to emulate the actual behavior of
msleep() in the current kernel via this function, then you need to
place the sleep in a while-loop. Please see kernel/timer.c::msleep().
Your version will wake up on wait-queue events, while msleep() in the
current kernel does not.

Thanks,
Nish

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 22/82] remove linux/version.h from drivers/message/fus ion
  2005-07-20 17:54   ` Nathan Lynch
@ 2005-07-20 18:22     ` Matt Domsch
  0 siblings, 0 replies; 18+ messages in thread
From: Matt Domsch @ 2005-07-20 18:22 UTC (permalink / raw)
  To: Nathan Lynch
  Cc: Moore, Eric Dean, Olaf Hering, Andrew Morton, linux-kernel,
	James Bottomley, linux-scsi

On Wed, Jul 20, 2005 at 12:54:09PM -0500, Nathan Lynch wrote:
> Matt Domsch wrote:
> > On Tue, Jul 19, 2005 at 06:07:41PM -0600, Moore, Eric Dean wrote:
> > > On Tuesday, July 12, 2005 8:17 PM, Matt Domsch wrote:
> > > > In general, this construct:
> > > > 
> > > > > > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > > > > > -static int inline scsi_device_online(struct scsi_device *sdev)
> > > > > > -{
> > > > > > -	return sdev->online;
> > > > > > -}
> > > > > > -#endif
> > > > 
> > > > is better tested as:
> > > > 
> > > > #ifndef scsi_device_inline
> > > > static int inline scsi_device_online(struct scsi_device *sdev)
> > > > {
> > > >     return sdev->online;
> > > > }
> > > > #endif
> > > > 
> > > > when you can.  It cleanly eliminates the version test, and tests for
> > > > exactly what you're looking for - is this function defined.
> > > > 
> > > 
> > > What you illustrated above is not going to work.
> > > If your doing #ifndef around a function, such as scsi_device_online, it's
> > > not going to compile
> > > when scsi_device_online is already implemented in the kernel tree.
> > > The routine scsi_device_online is a function, not a define.  For a define
> > > this would work.
> > 
> > Sure it does, function names are defined symbols.
> > 
> 
> $ cat foo.c
> static int foo(void) { return 0; }
> #ifndef foo
> static int foo(void) { return 0; }
> #endif
> 
> $ gcc -c foo.c
> foo.c:3: error: redefinition of 'foo'
> foo.c:1: error: previous definition of 'foo' was here
> 
> I believe #ifdef/#ifndef can test only preprocessor symbols.


I was mistaken. Christoph explained to me that it worked on 2.4 due to
the way module symbol versions worked, but isn't that way on 2.6
anymore.  My apologies.

-- 
Matt Domsch
Software Architect
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2005-07-20 18:22 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-11  0:15 [PATCH 22/82] remove linux/version.h from drivers/message/fus ion Moore, Eric Dean
2005-07-12 20:30 ` Tom Duffy
2005-07-13  2:16 ` Matt Domsch
2005-07-13 14:37   ` Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2005-07-12 20:50 Moore, Eric Dean
2005-07-12 20:56 ` Tom Duffy
2005-07-12 22:14 ` David S. Miller
2005-07-12 22:34 Moore, Eric Dean
2005-07-13 15:11 Moore, Eric Dean
2005-07-20  0:07 Moore, Eric Dean
2005-07-20  3:12 ` Matt Domsch
2005-07-20  4:28   ` Stephen Rothwell
2005-07-20  5:09   ` Moore, Eric Moore
2005-07-20  8:30   ` Bernd Petrovitsch
2005-07-20 12:48   ` Matthew Wilcox
2005-07-20 17:54   ` Nathan Lynch
2005-07-20 18:22     ` Matt Domsch
2005-07-20 17:55 ` Nish Aravamudan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox