All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Petr Vandrovec" <VANDROVE@vc.cvut.cz>
To: Rusty Trivial Russell <rusty@rustcorp.com.au>
Cc: linux-kernel@vger.kernel.org, torvalds@transmeta.com
Subject: Re: [TRIVIAL] Re: UP went into unexpected trashing
Date: Fri, 8 Nov 2002 16:35:26 +0200	[thread overview]
Message-ID: <6EF6764388E@vcnet.vc.cvut.cz> (raw)

On  8 Nov 02 at 19:33, Rusty Trivial Russell wrote:
> --- trivial-2.5-bk/include/asm-i386/bitops.h.orig   2002-11-08 18:47:20.000000000 +1100
> +++ trivial-2.5-bk/include/asm-i386/bitops.h    2002-11-08 18:47:20.000000000 +1100
> @@ -311,12 +311,13 @@
>         "repe; scasl\n\t"
>         "jz 1f\n\t"
>         "leal -4(%%edi),%%edi\n\t"
> -       "bsfl (%%edi),%%eax\n"
> -       "1:\tsubl %%ebx,%%edi\n\t"
> +       "bsfl (%%edi),%%edx\n"
> +       "subl %%ebx,%%edi\n\t"
>         "shll $3,%%edi\n\t"
> -       "addl %%edi,%%eax"
> +       "addl %%edi,%%edx\n\t"
> +       "1:\tmovl %%edx,%%eax\n\t"
>         :"=a" (res), "=&c" (d0), "=&D" (d1)
> -       :"1" ((size + 31) >> 5), "2" (addr), "b" (addr));
> +       :"1" ((size + 31) >> 5), "2" (addr), "b" (addr), "d" (size));
>     return res;

EDX is modified, should not you list "=d" as output, with new variable (d2)?

Or better, drop last line of assembly code, and say that (res) is in
"d", and list "a" as clobbered or dummy output register.

And BTW, if you'll do 

unsigned long b = 0x8000;
find_first_bit(&b, 1);

return value will be 15 even with patched function. So either more
fixing is needed, or code which calls find_first_bit() with value which
is not multiple of 32 should take special care that last dword does
not contain set bits after last interesting bit.

So maybe callers should just treat any return value >= size as "not found",
leaving older smaller code in place.
                                            Best regards,
                                                Petr Vandrovec
                                                vandrove@vc.cvut.cz
                                                

             reply	other threads:[~2002-11-08 15:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-08 14:35 Petr Vandrovec [this message]
2002-11-08 19:53 ` [TRIVIAL] Re: UP went into unexpected trashing Dipankar Sarma
2002-11-08 20:10   ` Linus Torvalds
2002-11-09  3:16     ` Rusty Russell
2002-11-09  4:40       ` Linus Torvalds
2002-11-10  3:09         ` Rusty Russell
  -- strict thread matches above, loose matches on Subject: below --
2002-11-08  8:33 Rusty Trivial Russell

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=6EF6764388E@vcnet.vc.cvut.cz \
    --to=vandrove@vc.cvut.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=torvalds@transmeta.com \
    /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.