i40e/base: catch NVM write semaphore timeout and retry
i40e/base: catch NVM write semaphore timeout and retry

In some circumstances, a multi-write transaction takes longer than
the default 3 minutes timeout on the write semaphore. If the write
failed with an EBUSY status, this is likely the problem. So here
it tries to reacquire the semaphore and then retry the write.

Test report: http://www.dpdk.org/ml/archives/dev/2015-May/017384.html

Signed-off-by: Helin Zhang <aba9dfdb1a6ec8bf1ff66b95272c029f8dfde1b1@intel.com>
Acked-by: Jijiang Liu <10b95deab7df654d0c21c8c98b54c9a1ecf2a5c0@intel.com>
Tested-by: Min Cao <2a88aab028744885054f990971530d20553769a9@intel.com>

john-mcnamara-intel/dpdk,john-mcnamara-intel/dpdk,mixja/dpdk,msune/dpdk,venkynv/dpdk-mirror,john-mcnamara-intel/dpdk,msune/dpdk,tsphillips/dpdk-fork,tsphillips/dpdk-fork,venkynv/dpdk-mirror,msune/dpdk,msune/dpdk,venkynv/dpdk-mirror,tsphillips/dpdk-fork,mixja/dpdk,mixja/dpdk,mixja/dpdk,tsphillips/dpdk-fork,venkynv/dpdk-mirror,john-mcnamara-intel/dpdk