You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
sfc: Change falcon_probe_board() to fail for unsupported boards
The driver needs specific PHY and board support code for each SFC4000 board; there is no point trying to continue if it is missing. Currently unsupported boards can trigger an 'oops'. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Cc: stable@kernel.org Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
f49a4589e9
commit
e41c11ee0c
@@ -728,15 +728,7 @@ static const struct falcon_board_type board_types[] = {
|
||||
},
|
||||
};
|
||||
|
||||
static const struct falcon_board_type falcon_dummy_board = {
|
||||
.init = efx_port_dummy_op_int,
|
||||
.init_phy = efx_port_dummy_op_void,
|
||||
.fini = efx_port_dummy_op_void,
|
||||
.set_id_led = efx_port_dummy_op_set_id_led,
|
||||
.monitor = efx_port_dummy_op_int,
|
||||
};
|
||||
|
||||
void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
|
||||
int falcon_probe_board(struct efx_nic *efx, u16 revision_info)
|
||||
{
|
||||
struct falcon_board *board = falcon_board(efx);
|
||||
u8 type_id = FALCON_BOARD_TYPE(revision_info);
|
||||
@@ -754,8 +746,9 @@ void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
|
||||
(efx->pci_dev->subsystem_vendor == EFX_VENDID_SFC)
|
||||
? board->type->ref_model : board->type->gen_type,
|
||||
'A' + board->major, board->minor);
|
||||
return 0;
|
||||
} else {
|
||||
EFX_ERR(efx, "unknown board type %d\n", type_id);
|
||||
board->type = &falcon_dummy_board;
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user