|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
Re: [Xen-ia64-devel] [PATCH][GFW] fix EFI_SAL_SET_VECTORS
Hi Isaku,
this is OK.
Tristan.
Quoting Isaku Yamahata <yamahata@xxxxxxxxxxxxx>:
> # HG changeset patch
> # User Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
> # Date 1210731778 -32400
> # Node ID c7e929cfb87aa4c505eecae2746d61e1226d8a90
> # Parent ececa5a5473be16d416cfb675d3a6bf338d7db4c
> fix EFI_SAL_SET_VECTORS
>
> While booting recent Linux kernel under VTi domain with the latest
> open gfw, it panics as following.
> Linux kernel calls sal call of
> (EFI_SAL_SET_VECTORS, EFI_SAL_SET_INIT_VECTOR) and the gfw accesses
> the invalid address.
> The uncached physical addresses are hard coded, but they aren't
> relocated when switching to virtual address mode.
> And calling xen sal hypercall looks copy and past typo.
>
> Unable to handle kernel paging request at virtual address
> 80000000ffffff80
> swapper[0]: Oops 8804682956800 [1]
> Modules linked in:
>
> Pid: 0, CPU 0, comm: swapper
> psr : 00001010084a2010 ifs : 8000000000001634 ip :
> [<e00000000f1479e0>] Not tainted
> (2.6.26-rc1xen-ia64-08245-g59409b5-dirt(XEN) paddr_to_maddr: called
> with bad memory address: 0x7000000004138100 - iip=a0000001000660c0
> ip is at 0xe00000000f1479e0
> unat: 0000000000000000 pfs : 000000000000091a rsc : 0000000000000003
> rnat: 0000000000000005 bsps: 0000000000000000 pr : 000000000002aa49
> ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
> csd : 0000000000000000 ssd : 0000000000000000
> b0 : a00000010075e3f0 b6 : a000000100052100 b7 : e00000000f147620
> f6 : 000000000000000000000 f7 : 000000000000000000000
> f8 : 000000000000000000000 f9 : 000000000000000000000
> f10 : 000000000000000000000 f11 : 000000000000000000000
> r1 : e00000000f152020 r2 : 0000000000000001 r3 : 000000000000040d
> r8 : 0000000000000000 r9 : 000000000000040c r10 : a000000100052100
> r11 : a000000100958708 r12 : a000000100943bd0 r13 : a00000010093c000
> r14 : 80000000ffffff80 r15 : e00000000f152130 r16 : e00000000f152138
> r17 : a000000100731948 r18 : a000000100052100 r19 : a0000001009b23b8
> r20 : a0000001009ed548 r21 : 00000000dead4ead r22 : a000000100958704
> r23 : 0000000000000000 r24 : a000000100a07518 r25 : e00000000f147620
> r26 : a0000001009ee038 r27 : a000000100731948 r28 : a000000100052100
> r29 : a000000100731948 r30 : a000000100052100 r31 : 0000000000000000
>
> Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
>
> diff --git a/edk2-sparse/EdkXenPkg/Dxe/XenSal/Sal.c
> b/edk2-sparse/EdkXenPkg/Dxe/XenSal/Sal.c
> --- a/edk2-sparse/EdkXenPkg/Dxe/XenSal/Sal.c
> +++ b/edk2-sparse/EdkXenPkg/Dxe/XenSal/Sal.c
> @@ -8,8 +8,8 @@
> UINT64 Gp;
> } SalRendezVector;
>
> -struct Fptr *SalMonarchInitVector = (struct Fptr *)0x80000000ffffff80;
> -struct Fptr *SalSlaveInitVector = (struct Fptr *)0x80000000ffffff90 ;
> +struct Fptr *SalMonarchInitVector = (struct Fptr *)0xffffff80;
> +struct Fptr *SalSlaveInitVector = (struct Fptr *)0xffffff90 ;
>
> STATIC
> EFI_SAL_STATUS
> @@ -136,3 +136,23 @@
> }
> return (SAL_RETURN_REGS) {status, r9, r10, r11};
> }
> +
> +VOID
> +EFIAPI
> +SalProcAddressChangeEvent (
> + IN EFI_EVENT Event,
> + IN VOID *Context
> + )
> +/*++
> +
> +Routine Description:
> +
> +Arguments:
> +
> +Returns:
> +
> +--*/
> +{
> + EfiConvertPointer (0x0, (VOID **) &SalMonarchInitVector);
> + EfiConvertPointer (0x0, (VOID **) &SalSlaveInitVector);
> +}
> diff --git a/edk2-sparse/EdkXenPkg/Dxe/XenSal/XenSal.msa
> b/edk2-sparse/EdkXenPkg/Dxe/XenSal/XenSal.msa
> --- a/edk2-sparse/EdkXenPkg/Dxe/XenSal/XenSal.msa
> +++ b/edk2-sparse/EdkXenPkg/Dxe/XenSal/XenSal.msa
> @@ -65,5 +65,8 @@
> <Extern>
> <ModuleEntryPoint>XenSalInitialize</ModuleEntryPoint>
> </Extern>
> + <Extern>
> +
>
<SetVirtualAddressMapCallBack>SalProcAddressChangeEvent</SetVirtualAddressMapCallBack>
> + </Extern>
> </Externs>
> </ModuleSurfaceArea>
> \ No newline at end of file
>
>
> --
> yamahata
>
> _______________________________________________
> Xen-ia64-devel mailing list
> Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-ia64-devel
>
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
|
|
|
|