1 diff --git a/drivers/soc/brcmstb/bmem.c b/drivers/soc/brcmstb/bmem.c
2 index 3d5c69b..7eb5c01 100644
3 --- a/drivers/soc/brcmstb/bmem.c
4 +++ b/drivers/soc/brcmstb/bmem.c
5 @@ -188,6 +188,17 @@ void __init bmem_reserve(void)
6 pr_info("Reserved %lu MiB at %pa\n",
7 (unsigned long) bmem_regions[i].size / SZ_1M,
8 &bmem_regions[i].addr);
11 + * Reserve the PAGE_SIZE memory preceeding each
12 + * BMEM region so it's unusable by the kernel.
13 + * This is to workaround a bug in the USB hardware
14 + * that may pre-fetch beyond the end of a DMA buffer
15 + * and read into BMEM and cause MRC errors.
16 + * See: SWLINUX-3996.
18 + memblock_reserve(bmem_regions[i].addr - PAGE_SIZE,