[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20071026155648.GB4321@flint.arm.linux.org.uk>
Date: Fri, 26 Oct 2007 16:56:48 +0100
From: Russell King <rmk@....linux.org.uk>
To: linux-ide@...r.kernel.org,
Bartlomiej Zolnierkiewicz <bzolnier@...il.com>,
Jeff Garzik <jgarzik@...ox.com>,
Alan Cox <alan@...rguk.ukuu.org.uk>
Cc: Linux Kernel List <linux-kernel@...r.kernel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Linus Torvalds <torvalds@...ux-foundation.org>
Subject: Regression: commit "ide: constify struct ide_port_info" causes breakage
commit 8562043606430185cad26d085d46adcc7ad67fd1 is broken, causing:
CC drivers/ide/pci/cmd64x.o
CC drivers/ide/pci/hpt366.o
drivers/ide/pci/hpt366.c:1428: error: hpt366_chipsets causes a section type conflict
and therefore should be reverted.
The problem arises because hpt366 has other data marked with __devinitdata,
so the compiler tries to define the initdata section with read-write
attributes at one point, and read-only attributes when encountering the
const-but-devinitdata declaration:
static struct hpt_info hpt36x __devinitdata = {
static struct hpt_info hpt370 __devinitdata = {
static struct hpt_info hpt370a __devinitdata = {
...
static const struct ide_port_info hpt366_chipsets[] __devinitdata = {
If we want ide_port_info to be read-only initdata, then we need
__devroinitdata and __roinitdata tags.
Note: it doesn't show up in cmd64x.c because that file contains no other
data marked as initdata or devinitdata.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists