mirror of https://gitee.com/openkylin/linux.git
net:rfs: adjust table size checking
Make sure root user does not try something stupid.
Also make sure mask field in struct rps_sock_flow_table
does not share a cache line with the potentially often dirtied
flow table.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Fixes: 567e4b7973
("net: rfs: add hash collision detection")
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
acde2c2d28
commit
93c1af6ca9
|
@ -653,7 +653,8 @@ struct rps_dev_flow_table {
|
|||
*/
|
||||
struct rps_sock_flow_table {
|
||||
u32 mask;
|
||||
u32 ents[0];
|
||||
|
||||
u32 ents[0] ____cacheline_aligned_in_smp;
|
||||
};
|
||||
#define RPS_SOCK_FLOW_TABLE_SIZE(_num) (offsetof(struct rps_sock_flow_table, ents[_num]))
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
|
|||
|
||||
if (write) {
|
||||
if (size) {
|
||||
if (size > 1<<30) {
|
||||
if (size > 1<<29) {
|
||||
/* Enforce limit to prevent overflow */
|
||||
mutex_unlock(&sock_flow_mutex);
|
||||
return -EINVAL;
|
||||
|
|
Loading…
Reference in New Issue