lkml.org 
[lkml]   [2011]   [Sep]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] Force same size of struct autofs_v5_packet on x86 and x86_64
    From
    Date
    On Fri, 2011-09-16 at 11:19 +0100, Al Viro wrote:
    > On Fri, Sep 16, 2011 at 12:06:38PM +0200, Thomas Meyer wrote:
    > > autofs_v5_packet is 300 bytes on x86 and 304 bytes on x86_64.
    > > This difference is wrong and leads to a hang in systemd when running
    > > a x86 userspace on an x86_64 kernel.
    >
    > NAK.
    >
    > You are talking about the userland ABI. With existing users. Changing
    > it might help systemd (what the hell is it doing with autofs, anyway?),
    > but breaking existing binaries (you know, ones that *do* have some business
    > dealing with autofs) is not acceptable.

    That's right.

    Certainly my mistake (made a long time ago) and when I realized it I
    decided I would need to handle it in user space for the same reasons Al
    has mentioned.

    I think this should be enough (but any further recommendations are
    welcome, apart from the fact we might get new archs):

    static size_t get_kpkt_len(void)
    {
    size_t pkt_len = sizeof(struct autofs_v5_packet);
    struct utsname un;

    uname(&un);

    if (pkt_len % 8) {
    if (strcmp(un.machine, "alpha") == 0 ||
    strcmp(un.machine, "ia64") == 0 ||
    strcmp(un.machine, "x86_64") == 0 ||
    strcmp(un.machine, "ppc64") == 0)
    pkt_len += 4;

    }

    return pkt_len;
    }



    \
     
     \ /
      Last update: 2011-09-16 12:41    [W:0.021 / U:92.796 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site