freebsd-dev/sys/dev/mpr
Alexander Motin b99419aee4 mpr/mps(4): Make device mapping some more robust.
Allow new enclosure to replace previously existing one if there is
no completely unused table entry, same as it is done for devices.

If we can not process DPM due to corruption -- wipe it and restart
from scratch.  Otherwise I don't see a way to recover persistence if
something go wrong and there is no BIOS to recover it for us.

Together this solves a problem that appeared when 9300-8i firmware
update to 16.00.10.00 somehow switched its mapping mode from Device
Persistence to Enclosure/Slot without wiping the DPM table.  It made
HBA completely unusable, since overflowed and conflicting mapping
table was unable to map any of enclosures and so devices.

Also while there make some enclosure mapping errors more informative.

MFC after:	1 month
Sponsored by:	iXsystems, Inc.
2021-04-23 23:36:51 -04:00
..
mpi
mpr_config.c mpr: big-endian support 2021-03-02 22:21:42 -03:00
mpr_ioctl.h
mpr_mapping.c mpr/mps(4): Make device mapping some more robust. 2021-04-23 23:36:51 -04:00
mpr_mapping.h
mpr_pci.c
mpr_sas_lsi.c mpr: big-endian support 2021-03-02 22:21:42 -03:00
mpr_sas.c mpr: big-endian support 2021-03-02 22:21:42 -03:00
mpr_sas.h
mpr_table.c mpr: big-endian support 2021-03-02 22:21:42 -03:00
mpr_table.h
mpr_user.c
mpr.c mpr: big-endian support 2021-03-02 22:21:42 -03:00
mprvar.h Remove unused wrappers around kproc_create() and kproc_exit(). 2021-03-12 09:47:58 -08:00