Re: [PATCH] fix sata_sil compilation on non-DMI platforms

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jeff Garzik writes:
 > Mikael Pettersson wrote:
 > > Jeff Garzik writes:
 > >  > Konstantinos Margaritis wrote:
 > >  > > (not subscribed please CC me)
 > >  > > 
 > >  > > I tried to compile sata_sil on a 2.6.27 kernel on powerpc32 and I found that 
 > >  > > it failed to compile -lots of dmi related errors. I found that I had to 
 > >  > > include the broken_systems handling code in #ifdef CONFIG_DMI (DMI is not 
 > >  > > supported on platforms other than i386/x86_64). 
 > >  > > 
 > >  > > Lennert on #mklinux told me that this commit broke the non-dmi support, and 
 > >  > > that a similar patch to mine is used on ARM systems :
 > >  > > 
 > >  > > commit e57db7bde7bff95ae812736ca00c73bd5271455b
 > >  > > SATA Sil: Blacklist system that spins off disks during ACPI power off
 > >  > > 
 > >  > > With this patch, sata_sil compiles on ppc (and I guess on other platforms). 
 > >  > > I'm using it for a while with no problems with a Delock 4-port SATA PCI card.
 > >  > 
 > >  > (CC'ing various Lennerts)
 > > 
 > > That would be Lennert Buytenhek.
 > > 
 > >  > What is the breakage?
 > > 
 > > Compile-time error because sata_sil is used on !x86 platforms and the
 > > unconditional references to x86-only DMI stuff simply aren't valid.
 > > 
 > > I have an ARM + sata_sil NAS box that did have this problem a few
 > > kernel releases back, but it got resolved before that kernel's -final.
 > > (I can look up the details on Thursday when I'm back to my home network.)
 > 
 > Yes, I was asking for specific details of the breakage.

Ok I've checked now, and the breakage is that the commit referenced
above added dmi stuff to sata_sil.c without an #include <linux/dmi.h>,
and that broke !x86 builds:

drivers/ata/sata_sil.c: In function 'sil_broken_system_poweroff':
drivers/ata/sata_sil.c:713: error: implicit declaration of function 'dmi_first_match'
drivers/ata/sata_sil.c:713: warning: initialization makes pointer from integer without a cast

x86 builds work because they drag in dmi.h indirectly via some other header.

The follow-up commit 1737ef7598d3515fdc11cb9ba7e054f334404e04
"sata_sil: Fix build breakage" added #include <linux/dmi.h> which
made !x86 builds work again. 2.6.29-rc3 was released in the window
between these two commits so it had this build breakage.

So the problem is not that <linux/dmi.h> doesn't work, but that
someone apparently backported e57db7bde7bff95ae812736ca00c73bd5271455b
to 2.6.27 but not 1737ef7598d3515fdc11cb9ba7e054f334404e04.

/Mikael
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux