Skip to content

Commit

Permalink
net: fix psock_fanout on sparc64
Browse files Browse the repository at this point in the history
The packetsocket fanout test uses a packet ring. Use TPACKET_V2
instead of TPACKET_V1 to work around a known 32/64 bit issue in
the older ring that manifests on sparc64.

Signed-off-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Willem de Bruijn authored and David S. Miller committed Mar 21, 2013
1 parent eaaa313 commit 98e821a
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion tools/testing/selftests/net/psock_fanout.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,13 @@ static char *sock_fanout_open_ring(int fd)
.tp_frame_nr = RING_NUM_FRAMES,
};
char *ring;
int val = TPACKET_V2;

if (setsockopt(fd, SOL_PACKET, PACKET_VERSION, (void *) &val,
sizeof(val))) {
perror("packetsock ring setsockopt version");
exit(1);
}
if (setsockopt(fd, SOL_PACKET, PACKET_RX_RING, (void *) &req,
sizeof(req))) {
perror("packetsock ring setsockopt");
Expand All @@ -201,7 +207,7 @@ static char *sock_fanout_open_ring(int fd)

static int sock_fanout_read_ring(int fd, void *ring)
{
struct tpacket_hdr *header = ring;
struct tpacket2_hdr *header = ring;
int count = 0;

while (header->tp_status & TP_STATUS_USER && count < RING_NUM_FRAMES) {
Expand Down

0 comments on commit 98e821a

Please sign in to comment.