mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-23 04:34:11 +08:00
drm/nouveau/nouveau: bios pointers may be unaligned, use proper accessors
This can show up on SPARC or other architectures that don't handle unaligned accesses. The kernel normally fixes these up, but it shouldn't have to. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96836 Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
69b624983f
commit
9936aeeaeb
@ -31,10 +31,8 @@
|
||||
|
||||
#define DCB_LOC_ON_CHIP 0
|
||||
|
||||
#define ROM16(x) le16_to_cpu(*(u16 *)&(x))
|
||||
#define ROM32(x) le32_to_cpu(*(u32 *)&(x))
|
||||
#define ROM48(x) ({ u8 *p = &(x); (u64)ROM16(p[4]) << 32 | ROM32(p[0]); })
|
||||
#define ROM64(x) le64_to_cpu(*(u64 *)&(x))
|
||||
#define ROM16(x) get_unaligned_le16(&(x))
|
||||
#define ROM32(x) get_unaligned_le32(&(x))
|
||||
#define ROMPTR(d,x) ({ \
|
||||
struct nouveau_drm *drm = nouveau_drm((d)); \
|
||||
ROM16(x) ? &drm->vbios.data[ROM16(x)] : NULL; \
|
||||
|
@ -23,8 +23,8 @@
|
||||
*/
|
||||
#include "mxms.h"
|
||||
|
||||
#define ROM16(x) le16_to_cpu(*(u16 *)&(x))
|
||||
#define ROM32(x) le32_to_cpu(*(u32 *)&(x))
|
||||
#define ROM16(x) get_unaligned_le16(&(x))
|
||||
#define ROM32(x) get_unaligned_le32(&(x))
|
||||
|
||||
static u8 *
|
||||
mxms_data(struct nvkm_mxm *mxm)
|
||||
|
Loading…
Reference in New Issue
Block a user