Re: Regression: commit "ide: constify struct ide_port_info" causes breakage

Bartlomiej Zolnierkiewicz
2007-10-26T18:13:21Z

On Friday 26 October 2007, Russell King wrote:
> 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.

Fixed 3 days ago, patch was posted to LKML.

http://lkml.org/lkml/2007/10/23/411

[ Will be pushed to Linus together with few other fixes soon. ]

> 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.

http://lkml.org/lkml/2007/10/23/412

Thanks,
Bart