cnic: Use proper ulp_ops for per device operations.
authorMichael Chan <mchan@broadcom.com>
Tue, 18 Mar 2014 03:19:06 +0000 (19:19 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 18 Mar 2014 20:02:16 +0000 (16:02 -0400)
commitf7bd12d09ed6e4093a56dbbfbe8411cc52a738d1
tree9e7e3ee033404737317ef81b50c28391bc15bd6d
parentff0992e9036e9810e7cd45234fa32ca1e79750e2
cnic: Use proper ulp_ops for per device operations.

For per device operations, cnic needs to dereference the RCU protected
cp->ulp_ops instead of the global cnic_ulp_tbl.  In 2 locations,
cnic_send_nlmsg() and cnic_copy_ulp_stats(), it was referencing the
global table.  If the device has been unregistered and these functions
are still being called (very unlikely scenarios), it could lead to NULL
pointer dereference.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/cnic.c