From owner-freebsd-arm@FreeBSD.ORG Wed Feb 17 14:54:10 2010 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 97F1D1065676 for ; Wed, 17 Feb 2010 14:54:10 +0000 (UTC) (envelope-from rpaulo@gmail.com) Received: from mail-fx0-f226.google.com (mail-fx0-f226.google.com [209.85.220.226]) by mx1.freebsd.org (Postfix) with ESMTP id 263718FC13 for ; Wed, 17 Feb 2010 14:54:09 +0000 (UTC) Received: by fxm26 with SMTP id 26so7297215fxm.13 for ; Wed, 17 Feb 2010 06:54:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:mime-version :content-type:from:in-reply-to:date:cc:content-transfer-encoding :message-id:references:to:x-mailer; bh=GePqW7/Xxmr4hVbM07UyaDvHOriSm1egV8AHZ2tgY9Q=; b=R6dd9/o9aZKeDIH1oeppz/KmCilw4NJqbyupZeiI9PIb2pY+ifAi/fYzltDTRgLWPP 59/Jchu1kFi/w+Ee8+7fhKbS5hnYiD4dK58rUWX5YnjtpGf4R35ODm6hFTQ6bMqijn/m 1ho56kSXySVbZdHPxPqCm+c1Mi/tU4+U71TeM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to:x-mailer; b=CEHktJ6Yb0SAzNYuOWdSaZZIlPwKV0LsLS9cEjSXuzBOG1J21suDcbEnqk05Fku2NQ H4q74igBKnqCvBWfvuu93du3prVZqxuRo85bow8LP17rekvEiBjgNWo494wkbrZ7rw0D zgWHjRPF942+LyKUg6YYwyVgabivSxLXufCAk= Received: by 10.87.48.11 with SMTP id a11mr14488375fgk.36.1266418448788; Wed, 17 Feb 2010 06:54:08 -0800 (PST) Received: from ?10.0.10.4? (54.81.54.77.rev.vodafone.pt [77.54.81.54]) by mx.google.com with ESMTPS id e3sm11977837fga.11.2010.02.17.06.54.07 (version=TLSv1/SSLv3 cipher=RC4-MD5); Wed, 17 Feb 2010 06:54:07 -0800 (PST) Mime-Version: 1.0 (Apple Message framework v1077) Content-Type: text/plain; charset=us-ascii From: Rui Paulo In-Reply-To: <4B7BFAA4.4040607@semihalf.com> Date: Wed, 17 Feb 2010 14:54:05 +0000 Content-Transfer-Encoding: quoted-printable Message-Id: References: <4B7BFAA4.4040607@semihalf.com> To: Grzegorz Bernacki X-Mailer: Apple Mail (2.1077) Cc: freebsd-arm@freebsd.org Subject: Re: kdump on ARM X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Feb 2010 14:54:10 -0000 On 17 Feb 2010, at 14:18, Grzegorz Bernacki wrote: > Hi, >=20 > I've noticed that kdump on ARM doesn't work properly, it generates bus = error. The problem is that structures dumped into ktrace.out are not = aligned. Processing such a structure causes Aligment Fault. One solution = is to copy structure into local variable and then process it, please see = patch below. But I am not sure if this is the best solution and maybe = someone has a better idea. >=20 > grzesiek >=20 >=20 > diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c > index 386221e..5a15886 100644 > --- a/usr.bin/kdump/kdump.c > +++ b/usr.bin/kdump/kdump.c > @@ -1325,6 +1325,10 @@ ktrstat(struct stat *statp) > void > ktrstruct(char *buf, size_t buflen) > { > +#if defined(__arm__) > + struct stat stat; > + struct sockaddr sockaddr; > +#endif > char *name, *data; > size_t namelen, datalen; > int i; > @@ -1348,12 +1352,22 @@ ktrstruct(char *buf, size_t buflen) > if (strcmp(name, "stat") =3D=3D 0) { > if (datalen !=3D sizeof(struct stat)) > goto invalid; > +#if defined(__arm__) > + memcpy(&stat, data, sizeof(struct stat)); > + ktrstat(&stat); > +#else > ktrstat((struct stat *)data); > +#endif > } else if (strcmp(name, "sockaddr") =3D=3D 0) { > if (datalen < sizeof(struct sockaddr) || > datalen !=3D ((struct sockaddr *)(data))->sa_len) > goto invalid; > +#if defined(__arm__) > + memcpy(&sockaddr, data, sizeof(struct sockaddr)); > + ktrsockaddr(&sockaddr); > +#else > ktrsockaddr((struct sockaddr *)data); > +#endif > } else { > printf("unknown structure\n"); > } I wonder if this can't be made non arm conditional? -- Rui Paulo