pseries: Add cleanup hook for PAPR virtual LAN device

Currently the spapr-vlan device does not supply a cleanup call for its
NetClientInfo structure.  With current qemu versions, that leads to a SEGV
on exit, when net_cleanup() attempts to call the cleanup handlers on all
net clients.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
target-ppc: Fix CPU_POWERPC_MPC8547E

It was defined to ..._MPC8545E_v21 rather than ..._MPC8547E_v21.
Due to both resolving to CPU_POWERPC_e500v2_v21 this did not show.

Fixing this nontheless helps with QOM'ifying CPU aliases.

Signed-off-by: Andreas Färber <afaerber@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
target-ppc: Fix "G2leGP3" PVR

Unlike derived PVR constants mapped to CPU_POWERPC_G2LEgp3, the
"G2leGP3" model definition itself used the CPU_POWERPC_G2LEgp1 PVR.

Fixing this will allow to alias CPU_POWERPC_G2LEgp3-using types to
"G2leGP3".

Cc: qemu-stable@nongnu.org
Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Update error handling in ppc_cpu_realize()

Commit fe828a4d4b7a5617cda7b24e95e327bfb71d790e added a new fatal error
message while QOM realize'ification was in flight.

Convert it to return an Error instead of exit()ing.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Drop nested TARGET_PPC64 guard for POWER7

It is within a large TARGET_PPC64 section from 970 to 620,
so an #endif /* TARGET_PPC64 */ is confusing. Clean this up.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Inline comma into POWERPC_DEF_SVR() macro

To repurpose the POWERPC_DEF_SVR() macro outside of an array,
move the comma into the macro. No functional change.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract aliases from definitions list

Move definitions that were 100% identical except for the name into a
list of aliases so that we don't register duplicate CPU types.
Drop the accompanying comments since they don't really add value.

We need to support recursive lookup due to code names referencing a
generic name referencing a specific model revision.

List aliases separately for -cpu ?.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Make -cpu "ppc" an alias to "ppc32"

Drop the #if 0'ed alternative to make it "ppc64" for TARGET_PPC64.
If we ever want to change it, we can more easily do so now.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract MPC5xx aliases

Their PVR differed but was defined to MPC5xx.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract MGT823/MPC8xx as aliases

They used different PVRs but were defined to MPC8xx.

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 40x aliases

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 440 aliases

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Turn "ppc32" and "ppc64" CPUs into aliases

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 74x7[A] aliases

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 74x5 as aliases

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 74x1 aliases

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 7450 alias

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 7448 alias

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 7410 alias

Signed-off-by: Andreas Färber <afaerber@suse.de>
target-ppc: Extract 7400 alias

Signed-off-by: Andreas Färber <afaerber@suse.de>