From: Ben Hutchings Date: Tue, 2 Oct 2012 00:43:45 +0000 (+0100) Subject: sfc: Fix null function pointer in efx_sriov_channel_type X-Git-Tag: MMI-PSA29.97-13-9~15870^2~8^2~5 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=726ba0e14a7915effee9e8e652a37306d9637d13;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git sfc: Fix null function pointer in efx_sriov_channel_type Commit c31e5f9 ('sfc: Add channel specific receive_skb handler and post_remove callback') added the function pointer field efx_channel_type::post_remove and an unconditional call through it. This field should have been initialised to efx_channel_dummy_op_void in the existing instances of efx_channel_type, but this was only done in efx_default_channel_type. Consequently, if a device has SR-IOV enabled then removing the driver or device will result in an oops. Signed-off-by: Ben Hutchings --- diff --git a/drivers/net/ethernet/sfc/siena_sriov.c b/drivers/net/ethernet/sfc/siena_sriov.c index a8f48a455849..d49b53dc2a50 100644 --- a/drivers/net/ethernet/sfc/siena_sriov.c +++ b/drivers/net/ethernet/sfc/siena_sriov.c @@ -1035,6 +1035,7 @@ efx_sriov_get_channel_name(struct efx_channel *channel, char *buf, size_t len) static const struct efx_channel_type efx_sriov_channel_type = { .handle_no_channel = efx_sriov_handle_no_channel, .pre_probe = efx_sriov_probe_channel, + .post_remove = efx_channel_dummy_op_void, .get_name = efx_sriov_get_channel_name, /* no copy operation; channel must not be reallocated */ .keep_eventq = true,