summaryrefslogtreecommitdiff
path: root/include/uapi/linux
diff options
context:
space:
mode:
authorSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>2016-01-25 18:09:38 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:05:52 -0700
commit85c61fa3ac0e0176d5a3b8ae829eb1a355dafe38 (patch)
tree40ff20a313899cdd11681e2d0178d1a38656f06a /include/uapi/linux
parentb81ad4f065f12b99174fdafcd118b9dfa161d446 (diff)
net: rmnet_data: Remove the NAPI context for rmnet_data devices
Commit 28207b510dca ("net: rmnet_data: Add NAPI context for rmnet_data devices") added a NAPI struct per rmnet_data device. This was to ensure that the NAPI struct is always available even if there was a hotplug. However, this seems to be leading to some races where the NAPI struct is accessed concurrently across cores. The race here is between napi_gro_receive on one core with napi_complete running on the other accessing the same NAPI struct. If napi_gro_receive runs slightly earlier, napi_complete would see that the napi->gro_list would be non NULL in __napi_complete even though it had cleared earlier and would lead to a BUG. If napi_complete runs slightly earlier, napi_gro_receive would dereference a NULL pointer even though it had assigned an skb to napi->gro_list. Fix this by using the per cpu backlog struct as the NAPI struct for queuing packets to GRO engine. Access across cores would not be a problem in case of hotplug as they would use core specific structures. CRs-Fixed: 966095 Change-Id: I831df5b93cc6ee77355f2e98af89efcffe825bd8 Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Diffstat (limited to 'include/uapi/linux')
0 files changed, 0 insertions, 0 deletions