net/mlx4_core: Return -EPROBE_DEFER when a VF is probed before PF is sufficiently...
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Tue, 4 Jun 2013 05:13:27 +0000 (05:13 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 4 Jun 2013 19:58:24 +0000 (12:58 -0700)
commit5efe5355f22fb9b7bb64d19809c0a75805e0ccb8
treeedca2ce4a95dedb53d9ee6a9457f54b15f7da47c
parenta1c6693a50391683e7f5787bb027b1aae1afbedb
net/mlx4_core: Return -EPROBE_DEFER when a VF is probed before PF is sufficiently initialized

In the PF initialization, SRIOV is enabled before the PF is fully initialized.
This allows the kernel to probe the newly-exposed VFs before the PF is ready
to handle them (nested probes).

Have the probe method return the -EPROBE_DEFER value in this situation (instead
of the VF probe method retrying its initialization in a loop, and returning -EIO
on failure). When -EPROBE_DEFER is returned by the VF probe method, the kernel
itself will retry the probe after a suitable delay.

Based upon a suggestion by Ben Hutchings <bhutchings@solarflare.com>

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/cmd.c
drivers/net/ethernet/mellanox/mlx4/main.c