Validate firmware event payload lengths in top-half and bottom-half
event handlers for device status change, prepare-for-reset, energy pack
change, cable management, and device info change events to prevent buffer
over-reads on truncated or malformed firmware packets. Propagate validation
status from the device status top-half handler to prevent scheduling
bottom-half worker processing for invalid packets.
In addition, unlock the admin request spinlock when rejecting submissions
on unrecoverable controllers to avoid deadlocks. Synchronize event queue
teardown with the dedicated firmware event lock rather than the main driver
mutex to match worker queue locking, and add null checks for memory
allocations in CAM attach and bitmap scanning routines.