mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-07-16 23:08:49 +02:00
81dc1a7f89
NOTE: gfxterm_menu module removed, because of this change by upstream: commit ca2a91f43bf6e1df23a07c295534f871ddf2d401 Author: Glenn Washburn <development@efficientek.com> Date: Mon May 5 16:11:36 2025 -0500 tests: Disable gfxterm_menu and cmdline_cat tests This brings in the following changes from upstream: * a68a7dece loader/i386/pc/linux: Fix resource leak * de80acf36 loader/efi/linux: Unload previous Linux kernel/initrd before updating kernel size * 249db11d8 loader/efi/linux: Correctly terminate load_options member * f3b339af1 loader/efi/linux: Use sizeof() instead of constant * c2b2e0dcf loader/efi/linux: Use proper type for len variable * de4e8e2aa loader/efi/linux: Do not pass excessive size for source string * 8c8f96664 loader/efi/linux: Remove useless assignment * 8ebf155af include/grub/charset.h: Update documentation * 2f2ed28d5 Revert "lzma: Make sure we don't dereference past array" * 2539ede82 tests/util/grub-shell: Correct netboot and file_filter test failure * 8c2d4e64f normal/charset: Fix underflow and overflow in loop init * ba8eadde6 dl: Provide a fake grub_dl_set_persistent() and grub_dl_is_persistent() for the emu target * 409e72ced util/grub-protect: Correct uninit "err" variable * 5eca564b1 gnulib: Bring back the fix for resolving unused variable issue * ac1512b87 gnulib: Add patch to allow GRUB w/GCC-15 compile * db506b3b8 gnulib/regexec: Fix resource leak * bba7dd736 gnulib/regcomp: Fix resource leak * 91cb7ff6b tests/tpm2_key_protector_test: Add tests for SHA-384 PCR bank * 451e227e5 tpm2_key_protector: Dump the PCR bank for key unsealing * 11caacdb2 util/grub-protect: Fix the hash algorithm of PCR digest * ce23919ca build: Add new header files to dist to allow building from tar * e3b15bafd build: Remove extra_deps.lst from EXTRA_DIST * 40e261b89 lib/LzmaEnc: Validate "len" before subtracting * 86e8f2c4b osdep/unix/hostdisk: Fix signed integer overflow * 438f05581 disk/luks2: Add attempting to decrypt message to align with luks and geli modules * 20e6d0c4a osdep/linux/getroot: Detect DDF container similar to IMSM * b71bc0f8b fs/fshelp: Avoid possible NULL pointer deference * 272ff81cb fs/ntfs: Correct possible infinite loops/hangs * 8c95307a0 fs/ntfs: Correct possible access violations * 06914b614 fs/ntfs: Correct attribute vs attribute list validation * 0e1762c8a fs/ntfs: Correct regression with run list calculation * be303f8c1 lib/envblk: Ignore empty new lines while parsing env files * 34bd00ee2 fs/zfs: Fix another memory leak in ZFS code * ca2a91f43 tests: Disable gfxterm_menu and cmdline_cat tests Signed-off-by: Leah Rowe <leah@libreboot.org>
91 lines
3.5 KiB
Diff
91 lines
3.5 KiB
Diff
From 625fdcf42f2cf11a4bfe644412450c9e4f551d25 Mon Sep 17 00:00:00 2001
|
|
From: Patrick Rudolph <patrick.rudolph@9elements.com>
|
|
Date: Wed, 24 Feb 2021 08:25:41 +0100
|
|
Subject: [PATCH 24/26] Fix compilation on x86_64
|
|
|
|
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
|
|
---
|
|
grub-core/bus/usb/xhci.c | 24 ++++++++++++++++--------
|
|
1 file changed, 16 insertions(+), 8 deletions(-)
|
|
|
|
diff --git a/grub-core/bus/usb/xhci.c b/grub-core/bus/usb/xhci.c
|
|
index 88c9ac57f..9b9bae6e5 100644
|
|
--- a/grub-core/bus/usb/xhci.c
|
|
+++ b/grub-core/bus/usb/xhci.c
|
|
@@ -184,7 +184,7 @@ enum
|
|
* then we can get it from a trb pointer (provided by evt ring).
|
|
*/
|
|
#define XHCI_RING(_trb) \
|
|
- ((struct grub_xhci_ring*)((grub_uint32_t)(_trb) & ~(GRUB_XHCI_RING_SIZE-1)))
|
|
+ ((struct grub_xhci_ring*)((grub_addr_t)(_trb) & ~(GRUB_XHCI_RING_SIZE-1)))
|
|
|
|
/* slot context */
|
|
struct grub_xhci_slotctx {
|
|
@@ -495,6 +495,14 @@ grub_xhci_read8(volatile void *addr) {
|
|
return (*((volatile grub_uint32_t *)addr));
|
|
}
|
|
|
|
+static inline void *
|
|
+grub_xhci_read_etrb_ptr(volatile struct grub_xhci_trb *trb) {
|
|
+ grub_uint64_t tmp;
|
|
+ tmp = (grub_uint64_t)grub_xhci_read32(&trb->ptr_low);
|
|
+ tmp |= ((grub_uint64_t)grub_xhci_read32(&trb->ptr_high)) << 32;
|
|
+ return (void *)(grub_addr_t)tmp;
|
|
+}
|
|
+
|
|
static inline grub_uint32_t
|
|
grub_xhci_port_read (struct grub_xhci *x, grub_uint32_t port)
|
|
{
|
|
@@ -697,7 +705,7 @@ static void xhci_process_events(struct grub_xhci *x)
|
|
case ER_TRANSFER:
|
|
case ER_COMMAND_COMPLETE:
|
|
{
|
|
- struct grub_xhci_trb *rtrb = (void*)grub_xhci_read32(&etrb->ptr_low);
|
|
+ struct grub_xhci_trb *rtrb = grub_xhci_read_etrb_ptr(etrb);
|
|
struct grub_xhci_ring *ring = XHCI_RING(rtrb);
|
|
volatile struct grub_xhci_trb *evt = &ring->evt;
|
|
grub_uint32_t eidx = rtrb - ring->ring + 1;
|
|
@@ -730,9 +738,9 @@ static void xhci_process_events(struct grub_xhci *x)
|
|
}
|
|
grub_xhci_write32(&evts->nidx, nidx);
|
|
volatile struct grub_xhci_ir *ir = x->ir;
|
|
- grub_uint32_t erdp = (grub_uint32_t)(evts->ring + nidx);
|
|
- grub_xhci_write32(&ir->erdp_low, erdp);
|
|
- grub_xhci_write32(&ir->erdp_high, 0);
|
|
+ grub_uint64_t erdp = (grub_addr_t)(void *)(&evts->ring[nidx]);
|
|
+ grub_xhci_write32(&ir->erdp_low, erdp & 0xffffffff);
|
|
+ grub_xhci_write32(&ir->erdp_high, erdp >> 32);
|
|
}
|
|
}
|
|
|
|
@@ -833,7 +841,7 @@ static void xhci_trb_queue(volatile struct grub_xhci_ring *ring,
|
|
grub_uint32_t xferlen, grub_uint32_t flags)
|
|
{
|
|
grub_dprintf("xhci", "%s: ring %p data %llx len %d flags 0x%x remain 0x%x\n", __func__,
|
|
- ring, data_or_addr, xferlen & 0x1ffff, flags, xferlen >> 17);
|
|
+ ring, (unsigned long long)data_or_addr, xferlen & 0x1ffff, flags, xferlen >> 17);
|
|
|
|
if (xhci_ring_full(ring))
|
|
{
|
|
@@ -1940,7 +1948,7 @@ grub_xhci_setup_transfer (grub_usb_controller_t dev,
|
|
if (transfer->type == GRUB_USB_TRANSACTION_TYPE_CONTROL)
|
|
{
|
|
volatile struct grub_usb_packet_setup *setupdata;
|
|
- setupdata = (void *)transfer->transactions[0].data;
|
|
+ setupdata = (void *)(grub_addr_t)transfer->transactions[0].data;
|
|
grub_dprintf("xhci", "%s: CONTROLL TRANS req %d\n", __func__, setupdata->request);
|
|
grub_dprintf("xhci", "%s: CONTROLL TRANS length %d\n", __func__, setupdata->length);
|
|
|
|
@@ -2007,7 +2015,7 @@ grub_xhci_setup_transfer (grub_usb_controller_t dev,
|
|
/* Assume the ring has enough free space for all TRBs */
|
|
if (flags & TRB_TR_IDT && tr->size <= (int)sizeof(inline_data))
|
|
{
|
|
- grub_memcpy(&inline_data, (void *)tr->data, tr->size);
|
|
+ grub_memcpy(&inline_data, (void *)(grub_addr_t)tr->data, tr->size);
|
|
xhci_trb_queue(reqs, inline_data, tr->size, flags);
|
|
}
|
|
else
|
|
--
|
|
2.39.5
|
|
|