From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Turner Subject: [PATCH] drm/radeon/kms/atom: use get_unaligned() for ctx->ps Date: Wed, 10 Feb 2010 22:56:41 -0500 Message-ID: <1265860601-2915-1-git-send-email-mattst88@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.sourceforge.net To: dri-devel@lists.sourceforge.net Cc: Alex Deucher , Dave Airlie , Jerome Glisse List-Id: dri-devel@lists.freedesktop.org Noticed on a DEC Alpha. Start up into console mode caused 15 unaligned accesses, and starting X caused another 48. Signed-off-by: Matt Turner CC: Jerome Glisse CC: Alex Deucher CC: Dave Airlie --- drivers/gpu/drm/radeon/atom.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index bd0c843..c1d3c24 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c @@ -24,6 +24,7 @@ #include #include +#include #define ATOM_DEBUG @@ -212,7 +213,9 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr, case ATOM_ARG_PS: idx = U8(*ptr); (*ptr)++; - val = le32_to_cpu(ctx->ps[idx]); + /* get_unaligned avoids unaligned accesses from atombios tables + * 21, 24, 42. */ + val = le32_to_cpu(get_unaligned((u32 *)&ctx->ps[idx])); if (print) DEBUG("PS[0x%02X,0x%04X]", idx, val); break; -- 1.6.5.3 ------------------------------------------------------------------------------ SOLARIS 10 is the OS for Data Centers - provides features such as DTrace, Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW http://p.sf.net/sfu/solaris-dev2dev --