mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 10:13:56 -06:00
* Fix bits in one of the PMCW channel subsystem masks
* s390x TCG shift instruction fixes * Re-organization for the MAINTAINERS file * Support for extended length of kernel command lines * Re-order the SIGP STOP code -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmHnyxkRHHRodXRoQHJl ZGhhdC5jb20ACgkQLtnXdP5wLbUN3w/+MpP0vuY69e82QJyNBp+ysNkY0glfrMOg b9fLoXr3HYLreyd6A08649lSUO43OG2+rDmCYZvfs02k6bM4vGReGHmfDYpfRE8b 7viX7kV7RQuzf+54PdMQ1ojtflGBtbbo82bsIcgVoKTl8o1VIoTqWl3u49yo/y1z A67tKeelS95l6mZlkEGX0UCdXO7yFc6p29gVasdaJb1M3aJl+Vez2t6ElQKJwe3d V93Jdpd4lyuiRKt/gn9LyXZNSCqfNnLGKB1bz/vMktXhx/hCnI4qBBDAIov3Hvr2 dWXAdCVpWtJRrE2ZPqAaxqN9PidgWwjKHvjXjEh4UG01neOdHPvN3tzFMmpbtY4P Is/HfZMXeaOA3ZD9hhEIzwcXXJFzC7Cqke79KHDaupQcJ+A5ypEWqfEuIfCbrWHz RFdqTIvzTUf98dZjz8dO1YS3srRXE0/kLJX0RbbhWAPZoLCiwRu4jnfcz4Cu+oJG gHTQI3qRZYk+kFgWyAJ3IgTiSkULFgquFEyj6yH1yE63hFjBoS7NTtIMjovihOyC ho8yD4t/qCzw/u7zqCph0pTydYYNWgCo80DdQmnHS/S/kODoePvriDcw1Sza9CLf 9OcK8AEcrI857xoxp/AXGNRcY/Rl/Z5lEuNEAr74zUNGnPdGo6pTIU9gsmhgJEyb R2lt+xOkTJ4= =XtZt -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2022-01-19' into staging * Fix bits in one of the PMCW channel subsystem masks * s390x TCG shift instruction fixes * Re-organization for the MAINTAINERS file * Support for extended length of kernel command lines * Re-order the SIGP STOP code # gpg: Signature made Wed 19 Jan 2022 08:26:01 GMT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * remotes/thuth-gitlab/tags/pull-request-2022-01-19: s390x: sigp: Reorder the SIGP STOP code s390x/ipl: support extended kernel command line size MAINTAINERS: Add myself to s390 I/O areas MAINTAINERS: split out s390x sections tests/tcg/s390x: Test shift instructions target/s390x: Fix shifting 32-bit values for more than 31 bits target/s390x: Fix cc_calc_sla_64() missing overflows target/s390x: Fix SRDA CC calculation target/s390x: Fix SLDA sign bit index s390x/css: fix PMCW invalid mask Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
5e0214cdee
11 changed files with 430 additions and 103 deletions
|
@ -37,8 +37,9 @@
|
|||
|
||||
#define KERN_IMAGE_START 0x010000UL
|
||||
#define LINUX_MAGIC_ADDR 0x010008UL
|
||||
#define KERN_PARM_AREA_SIZE_ADDR 0x010430UL
|
||||
#define KERN_PARM_AREA 0x010480UL
|
||||
#define KERN_PARM_AREA_SIZE 0x000380UL
|
||||
#define LEGACY_KERN_PARM_AREA_SIZE 0x000380UL
|
||||
#define INITRD_START 0x800000UL
|
||||
#define INITRD_PARM_START 0x010408UL
|
||||
#define PARMFILE_START 0x001000UL
|
||||
|
@ -110,6 +111,21 @@ static uint64_t bios_translate_addr(void *opaque, uint64_t srcaddr)
|
|||
return srcaddr + dstaddr;
|
||||
}
|
||||
|
||||
static uint64_t get_max_kernel_cmdline_size(void)
|
||||
{
|
||||
uint64_t *size_ptr = rom_ptr(KERN_PARM_AREA_SIZE_ADDR, sizeof(*size_ptr));
|
||||
|
||||
if (size_ptr) {
|
||||
uint64_t size;
|
||||
|
||||
size = be64_to_cpu(*size_ptr);
|
||||
if (size) {
|
||||
return size;
|
||||
}
|
||||
}
|
||||
return LEGACY_KERN_PARM_AREA_SIZE;
|
||||
}
|
||||
|
||||
static void s390_ipl_realize(DeviceState *dev, Error **errp)
|
||||
{
|
||||
MachineState *ms = MACHINE(qdev_get_machine());
|
||||
|
@ -197,10 +213,13 @@ static void s390_ipl_realize(DeviceState *dev, Error **errp)
|
|||
ipl->start_addr = KERN_IMAGE_START;
|
||||
/* Overwrite parameters in the kernel image, which are "rom" */
|
||||
if (parm_area) {
|
||||
if (cmdline_size > KERN_PARM_AREA_SIZE) {
|
||||
uint64_t max_cmdline_size = get_max_kernel_cmdline_size();
|
||||
|
||||
if (cmdline_size > max_cmdline_size) {
|
||||
error_setg(errp,
|
||||
"kernel command line exceeds maximum size: %zu > %lu",
|
||||
cmdline_size, KERN_PARM_AREA_SIZE);
|
||||
"kernel command line exceeds maximum size:"
|
||||
" %zu > %" PRIu64,
|
||||
cmdline_size, max_cmdline_size);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue