BootMonFs: Fix error codes returned by Open() and Read()

Change-Id: I245a4d219d4cfed0138ba52b4250e23e4903ae7e
MdeModulePkg/EhciDxe: Do not process a same URB twice

After changing the USB stack to make it synchronous at initialization,
we were checking if there was a pending interrupt when the USB interrupt
was initialized for a specific device.
At the first enumeration, all the connected USB devices are initialized.
USB device drivers initialize their USB interrupt and process the completed
URBs. There was no way to check if a URB was in process because before
there was a single periodic task to process these URBs.

Note: this change is only required when using the temporary hack to make
      the USB stack synchronous.

Change-Id: I4c56bec2079c3ad5280e4cf4b0094337c6a7a41d
ArmPkg/ArmLib/AArch64: Initialize the new N+1-level page table before registering it

Prior to this change, when a new page table was created at level N+1,
the reference to the table was added to the level N translation table,
before being initialized.
It means if virtual addresses were in the address range defined by
this new table the CPU would crash as the address range was not
initialized.

Change-Id: Iff02afe0dfd7d296bac803bc07deef8552ed392f