All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chris Webb <chris@arachsys.com>
To: James Bottomley <James.Bottomley@suse.de>
Cc: linux-scsi@vger.kernel.org
Subject: Re: oops during scsi scanning disk setup
Date: Fri, 21 Aug 2009 10:23:26 +0100	[thread overview]
Message-ID: <20090821092326.GF32115@arachsys.com> (raw)
In-Reply-To: <20090821083356.GC32115@arachsys.com>

Chris Webb <chris@arachsys.com> writes:

> Reading through the disassembled code and comparing by hand against
> disk_part_iter_next(), I think that might be line 144 of block/genhd.c,
> where the ptbl->len dereference happens.

Sorry to follow up a third time, but I can now confirm this. I slipped -g into
CFLAGS in the kernel Makefile and rebuilt genhd.o and then the entire vmlinux.

  # objdump -S genhd.o
  [...]
  0000000000000da3 <disk_part_iter_next>:
   *
   * CONTEXT:
   * Don't care.
   */
  struct hd_struct *disk_part_iter_next(struct disk_part_iter *piter)
  {
       da3:       55                      push   %rbp
       da4:       48 89 e5                mov    %rsp,%rbp
       da7:       41 55                   push   %r13
       da9:       41 54                   push   %r12
       dab:       53                      push   %rbx
       dac:       48 89 fb                mov    %rdi,%rbx
       daf:       48 83 ec 08             sub    $0x8,%rsp
          struct disk_part_tbl *ptbl;
          int inc, end;

          /* put the last partition */
          disk_put_part(piter->part);
       db3:       48 8b 7f 08             mov    0x8(%rdi),%rdi
  [...]
       e01:       48 be ff ff ff ff 08    mov    $0x8ffffffff,%rsi
       e08:       00 00 00 
       e0b:       48 b9 00 00 00 00 08    mov    $0x800000000,%rcx
       e12:       00 00 00 
       e15:       eb 50                   jmp    e67 <disk_part_iter_next+0xc4>
                          end = -1;
                  else
                          end = 0;
         } else {
                  inc = 1;
                  end = ptbl->len;
       e17:       8b 42 10                mov    0x10(%rdx),%eax
       e1a:       41 bd 01 00 00 00       mov    $0x1,%r13d
       e20:       eb db                   jmp    dfd <disk_part_iter_next+0x5a>
  [...]

  # addr2line -e vmlinux 0xffffffff803f0d77
  /tmp/linux-2.6.30.4-p.tmp/block/genhd.c:144

Cheers,

Chris,

  reply	other threads:[~2009-08-21  9:27 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-20 18:05 oops during scsi scanning disk setup Chris Webb
2009-08-20 20:01 ` Matthew Wilcox
2009-08-20 20:10   ` Yinghai Lu
2009-08-21  4:26     ` Arjan van de Ven
2009-08-20 22:26 ` James Bottomley
2009-08-21  8:16   ` Chris Webb
2009-08-21  8:33     ` Chris Webb
2009-08-21  9:23       ` Chris Webb [this message]
2009-08-21 14:00         ` James Bottomley
2009-08-21 14:51           ` Chris Webb
2009-08-21 15:47             ` James Bottomley
2009-08-21 22:59               ` Chris Webb
2009-08-21 23:39                 ` James Bottomley
2009-08-22 11:55               ` Chris Webb
2009-08-22 14:56                 ` James Bottomley
2009-08-22 15:50                   ` Chris Webb
2009-09-05 16:45                     ` Chris Webb

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=20090821092326.GF32115@arachsys.com \
    --to=chris@arachsys.com \
    --cc=James.Bottomley@suse.de \
    --cc=linux-scsi@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.