kdump on ARM

batcilla itself batcilla at gmail.com
Wed Feb 17 15:24:01 UTC 2010


2010/2/17 Hans Petter Selasky <hselasky at c2i.net>
>
> On Wednesday 17 February 2010 15:18:12 Grzegorz Bernacki wrote:
> > Hi,
> >
> > 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.
> >
> > grzesiek
> >
> >
> > 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") == 0) {
> >                  if (datalen != 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") == 0) {
> >                  if (datalen < sizeof(struct sockaddr) ||
> >                      datalen != ((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 think more than ARM is affected by this.
>
> --HPS
ARM affected definitely, just today had that Align error with -current
while tried to use ng_bridge with wlan0

//batcilla


More information about the freebsd-arm mailing list