All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Anderson <anderson@redhat.com>
To: linux-ia64@vger.kernel.org
Subject: [Linux-ia64] Re: insmod bug causes kernel unwind failures for module text
Date: Tue, 30 Jul 2002 13:35:12 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590701905854@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590701905853@msgid-missing>

Keith,

Unfortunately the patch won't work, at least in the context of the current
kernel code, because the following range check in ia64_module_init() causes
the insmod to fail:

  if (!mod_bound(archdata->segment_base, 0, mod))
  {
        printk(KERN_ERR "module_arch_init: archdata->unw_table out of bounds.\n");
        return 1;
  }

mod_bound() doesn't include the module struct as part of the module:

  #define mod_bound(p, n, m) ((unsigned long)(p) >= ((unsigned long)(m) +
  ((m)->size_of_struct)) && \
                   (unsigned long)((p)+(n)) <= (unsigned long)(m) + (m)->size)

Dave Anderson




Keith Owens wrote:

> On Thu, 25 Jul 2002 13:38:27 -0400,
> Dave Anderson <anderson@redhat.com> wrote:
> >There is a bug in the initialization of the unw_table_entry structures for
> >all kernel modules, such that any unwind operation that comes upon a kernel
> >module text address will fail to find its associated unwind info data in
> >the build_script() routine.  (Actually it won't be able to determine what
> >module it belongs to.)
>
> This patch against modutils 2.4.18 fixes it for me.  Unless I hear any
> complaints in the next 24 hours, I will roll modutils 2.4.19 with this
> change on July 31 11:00 UTC.
>
> Segment base is pretty arbitrary for modules, changing it from start of
> text to start of module makes it easier to convert offsets to
> addresses.  It is also what hppa{64} does for SEGREL.
>
> Index: 18.2/obj/obj_ia64.c
> --- 18.2/obj/obj_ia64.c Fri, 01 Mar 2002 11:39:06 +1100 kaos (modutils-2.4/c/0_obj_ia64.c 1.5 644)
> +++ 19.3(w)/obj/obj_ia64.c Tue, 30 Jul 2002 17:47:02 +1000 kaos (modutils-2.4/c/0_obj_ia64.c 1.7 644)
> @@ -911,12 +911,8 @@ arch_apply_relocation(struct obj_file *f
>
>      case R_IA64_SEGREL32LSB :   /* @segrel(sym + add), data4 LSB */
>      case R_IA64_SEGREL64LSB :   /* @segrel(sym + add), data8 LSB */
> -       if (targsec->header.sh_type & SHT_NOBITS)
> -           v = ifile->bss - v;
> -       else if (targsec->header.sh_flags & SHF_EXECINSTR)
> -           v = ifile->text - v;
> -       else
> -           v = ifile->data - v;
> +       /* Only one segment for modules, see segment_base in arch_archdata */
> +       v -= f->baseaddr;
>         if (r_info = R_IA64_SEGREL32LSB)
>             COPY_32LSB(loc, v);
>         else
> @@ -1010,7 +1006,7 @@ arch_archdata (struct obj_file *f, struc
>      ad->unw_start = 0;
>      ad->unw_end = 0;
>      ad->unw_table = 0;
> -    ad->segment_base = f->sections[1]->header.sh_addr;
> +    ad->segment_base = f->baseaddr;
>      for (i = 0; i < f->header.e_shnum; ++i)
>      {
>         sec = f->sections[i];



  reply	other threads:[~2002-07-30 13:35 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-30  8:28 [Linux-ia64] Re: insmod bug causes kernel unwind failures for module text Keith Owens
2002-07-30 13:35 ` Dave Anderson [this message]
2002-07-30 14:03 ` Dave Anderson
2002-07-31  1:09 ` Keith Owens
2002-07-31 17:33 ` Dave Anderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-ia64-105590701905854@msgid-missing \
    --to=anderson@redhat.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.