[lkml]   [2008]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH] Add PCI_DEVICE_TABLE macro
    > And again, what does this buy us?

    Clarity and simplicity, I hope... there are a bunch of definitions
    scattered about the kernel that omit the __devinitdata modifier despite
    the documentation stating that it should always be there. The
    definition really should have been const, which wasn't possible before
    but has become so with the addition of the __devinitconst attribute.

    Furthermore, there are definitions that use "const" and __devinitdata,
    which is explicitly wrong but the compiler doesn't catch section
    mismatches if there's only one such one case in the module (which is
    often the case).

    Adding the __devinitconst modifier where there was nothing before buys
    us memory. Adding the const modifier gives the compiler a chance to do
    its thing. Changing __devinitdata to __devinitconst where it was wrong
    actually fixes some compiler errors in older (mid-release) kernels that
    were patched over by "removing" the section attribute altogether (which
    wastes memory).

    Adding the macro (Olof's idea, not mine) makes it pretty difficult to
    get this definition wrong... I'll do the rest of the cleanup, but I need
    to know whether it's better to use a macro like this, or to open code
    the definitions. I prefer the macro approach...

    Hope this makes some sense...


     \ /
      Last update: 2008-02-18 08:37    [W:0.020 / U:4.496 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site