diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/i386/pci/mmconfig.c | 6 | ||||
-rw-r--r-- | arch/x86_64/lib/memcpy.S | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/arch/i386/pci/mmconfig.c b/arch/i386/pci/mmconfig.c index 0d46b7a88b3b..1bf5816d34c8 100644 --- a/arch/i386/pci/mmconfig.c +++ b/arch/i386/pci/mmconfig.c @@ -115,13 +115,13 @@ static int pci_mmcfg_write(unsigned int seg, unsigned int bus, switch (len) { case 1: - mmio_config_writeb(mmcfg_virt_addr, value); + mmio_config_writeb(mmcfg_virt_addr + reg, value); break; case 2: - mmio_config_writew(mmcfg_virt_addr, value); + mmio_config_writew(mmcfg_virt_addr + reg, value); break; case 4: - mmio_config_writel(mmcfg_virt_addr, value); + mmio_config_writel(mmcfg_virt_addr + reg, value); break; } spin_unlock_irqrestore(&pci_config_lock, flags); diff --git a/arch/x86_64/lib/memcpy.S b/arch/x86_64/lib/memcpy.S index 0ea0ddc875a7..c22981fa2f3a 100644 --- a/arch/x86_64/lib/memcpy.S +++ b/arch/x86_64/lib/memcpy.S @@ -124,6 +124,8 @@ ENDPROC(__memcpy) .quad memcpy .quad 1b .byte X86_FEATURE_REP_GOOD - .byte .Lfinal - memcpy + /* Replace only beginning, memcpy is used to apply alternatives, so it + * is silly to overwrite itself with nops - reboot is only outcome... */ + .byte 2b - 1b .byte 2b - 1b .previous |