qla2xxx: Collect PCI register checking and board disable scheduling

Add a uint16_t variant of qla2x00_check_reg_for_disconnect and use these
routines to check and schedule a PCI-disconnected board from a
centralized place.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
qla2xxx: Schedule board removal only once

There are various callers of qla2x00_check_reg{32,16}for_disconnect that
may schedule board removal on PCI-disconnect.  Add a PCI_BUS_ERROR bit
to dpc_flags to test before scheduling the disable work.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>
qla2xxx: Prevent qla2xxx removal and board disable race

Leave the driver-specific data attached to the underlying PCI device
intact in qla2x00_disable_board_on_pci_error, so that qla2x00_remove_one
has enough breadcrumbs to determine that any board disable work has been
completed.

Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com>