David Miller wrote:
From: BERTRAND_Joël <[EMAIL PROTECTED]>
Date: Thu, 12 Jul 2007 11:50:38 +0200

        Process stops at line 17384 in clamav-strace:

futex(0x25944f0, FUTEX_WAIT

Line terminaison was written ("2, NULL) = ? ERESTARTSYS (To be restarted)") when I have pressed ctrl+C, but process remains in sleep state. I have tried kill -15 (without any success). Only kill -9 kills clamd.

Can you give this patch a try?

diff --git a/include/asm-sparc64/futex.h b/include/asm-sparc64/futex.h
index 876312f..3b5797e 100644
--- a/include/asm-sparc64/futex.h
+++ b/include/asm-sparc64/futex.h
@@ -14,6 +14,7 @@
        "  cmp     %2, %1\n"                  \
        "  bne,pn  %%icc, 1b\n"                       \
        "   mov    0, %0\n"                   \
+       "  sra     %1, 0, %1\n"                       \
        "3:\n"                                                \
        "  .section .fixup,#alloc,#execinstr\n"       \
        "  .align  4\n"                               \
@@ -88,6 +89,7 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, 
int newval)
 {
        __asm__ __volatile__(
        "\n1:      casa    [%3] %%asi, %2, %0\n"
+       "  sra     %0, 0, %0\n"
        "2:\n"
        "  .section .fixup,#alloc,#execinstr\n"
        "  .align  4\n"

        David,

I have tried your patch with icemonkey and it hangs (in a futex). Strace output ends with :

futex(0xf2d3b0, FUTEX_WAKE, 1)          = 0
write(5, "\372", 1)                     = 1
ioctl(3, 0x4004667f, 0xfffe5304)        = 0
poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}, {fd=13, events=POLLIN|POLLPR I}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=17, even
ts=POLLIN|POLLPRI}, {fd=4, events=POLLIN, revents=POLLIN}], 7, -1) = 1
gettimeofday({1185351978, 620970}, NULL) = 0
gettimeofday({1185351978, 621167}, NULL) = 0
gettimeofday({1185351978, 621487}, NULL) = 0
gettimeofday({1185351978, 621671}, NULL) = 0
futex(0x923ec, FUTEX_WAKE, 1)           = 1
futex(0x923e8, FUTEX_WAKE, 1)           = 1
read(4, "\372", 1)                      = 1
futex(0xf9504, FUTEX_WAKE, 1)           = 1
ioctl(3, 0x4004667f, 0xfffe5304)        = 0
poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}, {fd=13, events=POLLIN|POLLPR I}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=17, even
ts=POLLIN|POLLPRI}], 6, 0) = 0
write(3, "5\30\0\4\1 \30!\0\0\0>\0\22\0\22F\3\0\5\1 \30!\1 \n\236"..., 404) = 40
4
ioctl(3, 0x4004667f, 0xfffe5304)        = 0
poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}, {fd=13, events=POLLIN|POLLPR I}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=17, even
ts=POLLIN|POLLPRI}, {fd=4, events=POLLIN, revents=POLLIN}], 7, -1) = 1
futex(0xf300d4e4, FUTEX_WAKE, 1)        = 1
futex(0xf300d4e0, FUTEX_WAKE, 1)        = 1
futex(0xf277c8, FUTEX_WAKE, 1)          = 1
futex(0xf2d050, FUTEX_WAKE, 1)          = 1
futex(0xf2d054, FUTEX_WAIT, 1, NULL) = -1 EAGAIN (Resource temporarily unavai
lable)
futex(0xf277c8, FUTEX_WAKE, 1)          = 0
write(5, "\372", 1)                     = 1
ioctl(3, 0x4004667f, 0xfffe5304)        = 0
poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}, {fd=13, events=POLLIN|POLLPR I}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=17, even
ts=POLLIN|POLLPRI}, {fd=4, events=POLLIN, revents=POLLIN}], 7, -1) = 1
gettimeofday({1185351978, 680377}, NULL) = 0
write(3, "(\30\0\4\1 \3:\0\0\0>\0\0\0\0", 16) = 16
read(3, "[EMAIL PROTECTED]"..., 32) = 32
write(3, "(\30\0\4\1 \3:\0\0\0>\0\0\0\0", 16) = 16
read(3, "[EMAIL PROTECTED]"..., 32) = 32
write(3, "(\30\0\4\1 \3:\0\0\0>\0\0\0\0", 16) = 16
read(3, "[EMAIL PROTECTED]"..., 32) = 32
write(3, "(\30\0\4\1 \3:\0\0\0>\0\0\0\0", 16) = 16
read(3, "[EMAIL PROTECTED]"..., 32) = 32
write(3, "(\30\0\4\1 \3:\0\0\0>\0\0\0\0", 16) = 16
read(3, "[EMAIL PROTECTED]"..., 32) = 32
write(3, "(\30\0\4\1 \3:\0\0\0>\0\0\0\0", 16) = 16
read(3, "[EMAIL PROTECTED]"..., 32) = 32
gettimeofday({1185351978, 688447}, NULL) = 0
gettimeofday({1185351978, 688650}, NULL) = 0
gettimeofday({1185351978, 688958}, NULL) = 0
gettimeofday({1185351978, 689146}, NULL) = 0
futex(0x923ec, FUTEX_WAKE, 1)           = 1
futex(0x923e8, FUTEX_WAKE, 1)           = 1
write(5, "\372", 1)                     = 1
ioctl(3, 0x4004667f, 0xfffe5304)        = 0
poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}, {fd=13, events=POLLIN|POLLPR I}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=17, even
ts=POLLIN|POLLPRI}], 6, 0) = 0
write(3, "5\30\0\4\1 \30%\0\0\0>\4\t\3U;\3\0\7\1 \27\220\0\0\0\0"..., 7948) = 79
48
ioctl(3, 0x4004667f, 0xfffe5304)        = 0
poll([{fd=3, events=POLLIN}, {fd=9, events=POLLIN}, {fd=13, events=POLLIN|POLLPR I}, {fd=15, events=POLLIN|POLLPRI}, {fd=16, events=POLLIN|POLLPRI}, {fd=17, even
ts=POLLIN|POLLPRI}, {fd=4, events=POLLIN, revents=POLLIN}], 7, -1) = 1
futex(0xf72cb648, FUTEX_WAIT, 2, NULL)  = ? ERESTARTSYS (To be restarted)
--- SIGWINCH (Window changed) @ 0 (0) ---
futex(0xf72cb648, FUTEX_WAIT, 2, NULL)  = ? ERESTARTSYS (To be restarted)
--- SIGWINCH (Window changed) @ 0 (0) ---
futex(0xf72cb648, FUTEX_WAIT, 2, NULL

        Last line is not terminated.

        Regards,

        JKB
-
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to