# DF-4254 — `targ->flags |= ~MPR_TARGET_FLAGS_RAID_COMPONENT` sets every flag bit instead of clearing one

## Where
`sys/dev/raid/mpr/mpr_sas_lsi.c:597-599` (MPI2_EVENT_IR_PHYSICAL_DISK,
PD-state OFFLINE / NOT_CONFIGURED / NOT_COMPATIBLE / default branch):

```c
if (targ) {
        targ->flags |= ~MPR_TARGET_FLAGS_RAID_COMPONENT;   /* BUG */
```

Should be `&= ~` (clear the RAID_COMPONENT bit). This is the mpr twin of
mps(4) DF-1698 (mps_sas_lsi.c), which was filed for the mps driver — the
same defect exists here and was not covered by any mpr finding.

## What
`|=` with the inverted mask (0xFFFFFFFE on a flags field holding
MPR_TARGET_FLAGS_RAID_COMPONENT | MPR_TARGET_IS_SATA_SSD bits):
* the RAID_COMPONENT bit itself stays SET — the disk that just went
  OFFLINE/removed from the volume remains marked as a hidden RAID
  component, so `mprsas_add_device` (:909) keeps skipping the ID/reuse
  checks for it and the OS never sees the disk (locked out),
* every other flag bit is force-set, including MPR_TARGET_IS_SATA_SSD,
  which `mprsas_ir_shutdown` (:1677-1698) uses to decide
  `stop_at_shutdown` — an affected HDD gets treated as SSD and is NOT
  stopped on shutdown → spindle still spinning at power-off (the exact
  data-corruption scenario the SSU path exists to prevent).

## Trigger
mpr(4) IR-mode HBA; a phys disk state-change event with ReasonCode
STATE_CHANGED and NewValue OFFLINE/NOT_CONFIGURED/NOT_COMPATIBLE while a
target exists for the handle. Firmware-event-driven; hardware-gated on the
audit guest.

## Fix
`fix.diff` — one character-class change:

```diff
-						targ->flags |=
-					    ~MPR_TARGET_FLAGS_RAID_COMPONENT;
+						targ->flags &=
+					    ~MPR_TARGET_FLAGS_RAID_COMPONENT;
```

## Build/run
`build.log` — compile-validated on the audit guest.
