amd_allocate_pmc() chose the pmu-events code path whenever pmc_cpuid was non-empty, and rejected any allocation lacking PMC_F_EV_PMU.
But pmc_cpuid is set for every AMD CPU, while the pmu-events tables only cover Zen and later (mapfile.csv: families 23/25/26).
On older families (K8, Bobcat, Jaguar/16h, Bulldozer) libpmc finds no pmu-events entry and falls back to the legacy path, which never sets PMC_F_EV_PMU.
The kernel then took the pmu-events path anyway and returned EINVAL for every row:
pmcstat: ERROR: Cannot allocate system-mode pmc with specification "BU_CPU_CLK_UNHALTED": Invalid argument
Use PMC_F_EV_PMU as the discriminator, as c190fb35f35c intended: take the pmu-events path only when the flag is set, else fall through to the legacy handling.
Drop the early rejection that made the legacy path unreachable.