# DF-4695 — sili_pm_softreset: `error = EBUSY` (unexpected device-signature change) is unconditionally clobbered by `error = 0`

## Build & run

```
sh build.sh          # cc -O2 -Wall -o trigger_sili_pm trigger_sili_pm.c
sh run.sh            # ./trigger_sili_pm 15
```

## Expected output

This is a pure logic defect, mechanically provable from source — no runtime
trigger required (the trigger is kept only to document the hardware gate).

`sili_pm.c:489-497`:
```c
	if (at->at_type == ATA_PORT_T_NONE) {
		at->at_type = sili_port_signature(ap, at, sig);
	} else {
		if (sili_port_signature(ap, at, sig) != at->at_type) {
			kprintf("%s: device signature unexpectedly changed\n", …);
			error = EBUSY; /* XXX */
		}
	}
	error = 0;          /* <-- sili_pm.c:498: dead-stores the EBUSY above */
err:
```

The `/* XXX */` shows the author intended the signature-change to propagate;
`error = 0;` at :498 makes the assignment at :495 dead. The caller
(`sili_port_reset` from the state machine sili.c:632 or XPT_RESET_DEV
sili_cam.c:908) receives success and the probe state machine advances to
`ATA_PROBE_NEED_IDENT` (sili_pm.c:515) with a **stale `at->at_type`** after a
device swap behind the PM — the wrong IDENTIFY variant is then issued and the
probe degrades to a logged failure instead of the intended orderly EBUSY
retry. The ahci twin has the identical defect (ahci_pm.c:853-856).

On the audit QEMU guest there is no sili hardware (env.txt) — runtime
manifestation impossible; code-certain regardless.
