Bug 19017
Summary: | Oops with agpgart on a startup | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | Michal Jaegermann <michal> |
Component: | kernel | Assignee: | Michael K. Johnson <johnsonm> |
Status: | CLOSED RAWHIDE | QA Contact: | Brock Organ <borgan> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 7.3 | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | alpha | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2000-12-14 16:15:46 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Michal Jaegermann
2000-10-13 04:24:51 UTC
Opps happens on this code: /* Write out the address of the gatt table */ OUTREG32(amd_irongate_private.registers, AMD_ATTBASE, agp_bridge.gatt_bus_addr); Line 1667 in drivers/char/agp/agpgart_be.c, function amd_irongate_configure(). Here is a patch: --- linux-2.2.18px/drivers/char/agp/agp.h~ Tue Oct 3 16:03:13 2000 +++ linux-2.2.18px/drivers/char/agp/agp.h Tue Oct 17 10:23:14 2000 @@ -27,6 +27,8 @@ #ifndef _AGP_BACKEND_PRIV_H #define _AGP_BACKEND_PRIV_H 1 +#include <asm/io.h> + enum aper_size_type { U8_APER_SIZE, U16_APER_SIZE, @@ -119,13 +121,13 @@ void (*free_by_type) (agp_memory *); }; -#define OUTREG32(mmap, addr, val) *(volatile u32 *)(mmap + (addr)) = (val) -#define OUTREG16(mmap, addr, val) *(volatile u16 *)(mmap + (addr)) = (val) -#define OUTREG8 (mmap, addr, val) *(volatile u8 *) (mmap + (addr)) = (val) - -#define INREG32(mmap, addr) *(volatile u32 *)(mmap + (addr)) -#define INREG16(mmap, addr) *(volatile u16 *)(mmap + (addr)) -#define INREG8 (mmap, addr) *(volatile u8 *) (mmap + (addr)) +#define OUTREG32(mmap, addr, val) writel((val),(mmap + (addr))) +#define OUTREG16(mmap, addr, val) writew((val),(mmap + (addr))) +#define OUTREG8 (mmap, addr, val) writeb((val),(mmap + (addr))) + +#define INREG32(mmap, addr) readl(mmap + (addr)) +#define INREG16(mmap, addr) readw(mmap + (addr)) +#define INREG8 (mmap, addr) readb(mmap + (addr)) #define CACHE_FLUSH agp_bridge.cache_flush #define A_SIZE_8(x) ((aper_size_info_8 *) x) The module still may be not doing anything useful but at least will not oops. For x86 patched code compiles to exactly the same binary object file as before I believe this is fixed in the current rawhide kernels |