mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
packet: account statistics only in tpacket_stats_u
Currently, packet_sock has a struct tpacket_stats stats member for TPACKET_V1 and TPACKET_V2 statistic accounting, and with TPACKET_V3 ``union tpacket_stats_u stats_u'' was introduced, where however only statistics for TPACKET_V3 are held, and when copied to user space, TPACKET_V3 does some hackery and access also tpacket_stats' stats, although everything could have been done within the union itself. Unify accounting within the tpacket_stats_u union so that we can remove 8 bytes from packet_sock that are there unnecessary. Note that even if we switch to TPACKET_V3 and would use non mmap(2)ed option, this still works due to the union with same types + offsets, that are exposed to the user space. Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0578edc560
commit
ee80fbf301
2 changed files with 17 additions and 23 deletions
|
@ -93,8 +93,7 @@ struct packet_sock {
|
|||
/* struct sock has to be the first member of packet_sock */
|
||||
struct sock sk;
|
||||
struct packet_fanout *fanout;
|
||||
struct tpacket_stats stats;
|
||||
union tpacket_stats_u stats_u;
|
||||
union tpacket_stats_u stats;
|
||||
struct packet_ring_buffer rx_ring;
|
||||
struct packet_ring_buffer tx_ring;
|
||||
int copy_thresh;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue