[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20100927.210711.189689133.davem@davemloft.net>
Date: Mon, 27 Sep 2010 21:07:11 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: akpm@...ux-foundation.org
Cc: netdev@...r.kernel.org, bugzilla-daemon@...zilla.kernel.org,
bugme-daemon@...zilla.kernel.org, bono@...inehome.de
Subject: Re: [Bugme-new] [Bug 16603] New: send of data > 4 GB fails on 64
bit systems
From: Andrew Morton <akpm@...ux-foundation.org>
Date: Mon, 27 Sep 2010 20:56:24 -0700
> A blanket suckyfix might be, at the syscall level:
>
> if (size > 4g) {
> do_it_in_4g_hunks();
> do_the_last_bit();
> }
>
> unless that would break some networking syscall->framesize guarantees
> or something?
There is not a single length passed in, but a vector of them, that's
what the iovec conveys.
Even if you could, socket send calls have atomicity guarentees. For a
datagram socket, for example, a single send call corresponds to one
packet on the network.
BTW, this aspect of datagram sockets is a part of the reason we don't
see many reports about this stuff. :-) Only stream protocols can
really take such enormous lengths, and the most popular (TCP) does
much of the iovec handling by hand.
We just need to fix our junk, and the {min,max}_t(size_t, ...) change
I suggested is likely the easiest path.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists