r2990 - in trunk/kernel/source: kernel-source-2.6.10-2.6.10/debian kernel-source-2.6.10-2.6.10/debian/patches kernel-source-2.6.10-2.6.10/debian/patches/series kernel-source-2.6.11-2.6.11/debian kernel-source-2.6.11-2.6.11/debian/patches kernel-source-2.6.11-2.6.11/debian/patches/series kernel-source-2.6.8-2.6.8/debian kernel-source-2.6.8-2.6.8/debian/patches kernel-source-2.6.8-2.6.8/debian/patches/series

Jurij Smakov jurij-guest@costa.debian.org
Sun, 17 Apr 2005 23:29:24 +0000


Author: jurij-guest
Date: 2005-04-17 23:29:21 +0000 (Sun, 17 Apr 2005)
New Revision: 2990

Added:
   trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/sparc64-sigpoll-2.6.10.dpatch
   trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/sparc64-sigpoll-2.6.11.patch
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/sparc64-sigpoll-2.6.8.dpatch
Modified:
   trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
   trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-7
   trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/changelog
   trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/series/2.6.11-4
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
   trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-16
Log:
Added sparc64-sigpoll patch which fixes incorrect behaviour
of fcntl's F_NOTIFY function (#272683) to all 2.6 branches.


Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/changelog	2005-04-17 23:29:21 UTC (rev 2990)
@@ -1,5 +1,9 @@
 kernel-source-2.6.10 (2.6.10-7) UNRELEASED; urgency=low
 
+  * sparc64-sigpoll-2.6.10.dpatch:
+    [sparc64] Correctly fill out the siginfo_t fields upon delivery
+    of SIGPOLL and friends (Jurij Smakov)
+
   * [powerpc] replaced pegasos marvell gigabit ethernet driver by the backported
     version (Sven Luther)
   * [sparc] Added sparc-sunsab-serial-lockup.dpatch to eliminate the serial

Modified: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-7
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-7	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/series/2.6.10-7	2005-04-17 23:29:21 UTC (rev 2990)
@@ -2,3 +2,4 @@
 + powerpc-mv643xx-enet.dpatch
 + powerpc-mv643xx-eth-pegasos.dpatch
 + sparc-sunsab-serial-lockup.dpatch
++ sparc64-sigpoll-2.6.10.dpatch

Added: trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/sparc64-sigpoll-2.6.10.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/sparc64-sigpoll-2.6.10.dpatch	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.10-2.6.10/debian/patches/sparc64-sigpoll-2.6.10.dpatch	2005-04-17 23:29:21 UTC (rev 2990)
@@ -0,0 +1,35 @@
+#> In Debian's bug 272683 [0] submitter describes incorrect behavior of the 
+#> F_NOTIFY function of fcntl(), which reports the wrong number of the 
+#> file descriptor, on which the event has occured. I believe that the 
+#> culprit in this case is the copy_siginfo_to_user32() function in 
+#> arch/sparc64/kernel/signal32.c. Comparison with other arches (like
+#> ppc64), shows that the __SI_POLL branch in the case statement should 
+#> fill out the si_band and si_fd fields of the siginfo_t structure (si_fd is 
+#> used by fcntl() to pass the fd number back to user). Currently it does not 
+#> do that. Attached patch (against 2.6.11.7) separates __SI_FAULT and 
+#> __SI_POLL branches and does (presumably) the right thing in the latter by 
+#> copying the si_band and si_fd into the siginfo_t passed to user. With this 
+#> change the test program attached to the bug [0] works as expected (tested 
+#> on 2.6.8, against which the original bug was filed).
+#
+# Refs: http://marc.theaimsgroup.com/?l=linux-sparc&m=111363552425781&w=2
+#       http://marc.theaimsgroup.com/?l=linux-sparc&m=111377422704236&w=2
+#
+# -- Jurij Smakov <jurij@wooyd.org>  Sun, 17 Apr 2005 19:12:11 -0400
+--- a/arch/sparc64/kernel/signal32.c	2004-12-24 16:33:48.000000000 -0500
++++ b/arch/sparc64/kernel/signal32.c	2005-04-17 18:48:25.000000000 -0400
+@@ -192,10 +192,13 @@
+ 			err |= __put_user(from->si_uid, &to->si_uid);
+ 			break;
+ 		case __SI_FAULT >> 16:
+-		case __SI_POLL >> 16:
+ 			err |= __put_user(from->si_trapno, &to->si_trapno);
+ 			err |= __put_user((long)from->si_addr, &to->si_addr);
+ 			break;
++		case __SI_POLL >> 16:
++			err |= __put_user(from->si_band, &to->si_band);
++			err |= __put_user(from->si_fd, &to->si_fd);
++			break;
+ 		case __SI_RT >> 16: /* This is not generated by the kernel as of now.  */
+ 		case __SI_MESGQ >> 16:
+ 			err |= __put_user(from->si_pid, &to->si_pid);

Modified: trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/changelog	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/changelog	2005-04-17 23:29:21 UTC (rev 2990)
@@ -1,5 +1,9 @@
 kernel-source-2.6.11 (2.6.11-4) UNRELEASED; urgency=low
 
+  * sparc64-sigpoll-2.6.11.patch:
+    [sparc64] Correctly fill out the siginfo_t fields upon delivery
+    of SIGPOLL and friends (Jurij Smakov)
+
   * [sparc64] Replaced sparc-sunsab-serial-lockup.patch by a more 
     official version approved by upstream (sunsab-uart-update-timeout.patch)
     which appears to perform marginally better (Jurij Smakov).

Modified: trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/series/2.6.11-4
===================================================================
--- trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/series/2.6.11-4	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/series/2.6.11-4	2005-04-17 23:29:21 UTC (rev 2990)
@@ -1,3 +1,4 @@
 - sparc-sunsab-serial-lockup.patch
 + sunsab-uart-update-timeout.patch
 + sparc64-compat-nanoseconds.patch
++ sparc64-sigpoll-2.6.11.patch

Added: trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/sparc64-sigpoll-2.6.11.patch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/sparc64-sigpoll-2.6.11.patch	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.11-2.6.11/debian/patches/sparc64-sigpoll-2.6.11.patch	2005-04-17 23:29:21 UTC (rev 2990)
@@ -0,0 +1,35 @@
+#> In Debian's bug 272683 [0] submitter describes incorrect behavior of the 
+#> F_NOTIFY function of fcntl(), which reports the wrong number of the 
+#> file descriptor, on which the event has occured. I believe that the 
+#> culprit in this case is the copy_siginfo_to_user32() function in 
+#> arch/sparc64/kernel/signal32.c. Comparison with other arches (like
+#> ppc64), shows that the __SI_POLL branch in the case statement should 
+#> fill out the si_band and si_fd fields of the siginfo_t structure (si_fd is 
+#> used by fcntl() to pass the fd number back to user). Currently it does not 
+#> do that. Attached patch (against 2.6.11.7) separates __SI_FAULT and 
+#> __SI_POLL branches and does (presumably) the right thing in the latter by 
+#> copying the si_band and si_fd into the siginfo_t passed to user. With this 
+#> change the test program attached to the bug [0] works as expected (tested 
+#> on 2.6.8, against which the original bug was filed).
+#
+# Refs: http://marc.theaimsgroup.com/?l=linux-sparc&m=111363552425781&w=2
+#       http://marc.theaimsgroup.com/?l=linux-sparc&m=111377422704236&w=2
+#
+# -- Jurij Smakov <jurij@wooyd.org>  Sun, 17 Apr 2005 19:12:11 -0400
+--- a/arch/sparc64/kernel/signal32.c	2005-04-07 14:58:42.000000000 -0400
++++ b/arch/sparc64/kernel/signal32.c	2005-04-16 03:01:00.162300632 -0400
+@@ -192,10 +192,13 @@
+ 			err |= __put_user(from->si_uid, &to->si_uid);
+ 			break;
+ 		case __SI_FAULT >> 16:
+-		case __SI_POLL >> 16:
+ 			err |= __put_user(from->si_trapno, &to->si_trapno);
+ 			err |= __put_user((unsigned long)from->si_addr, &to->si_addr);
+ 			break;
++		case __SI_POLL >> 16:
++			err |= __put_user(from->si_band, &to->si_band);
++			err |= __put_user(from->si_fd, &to->si_fd);
++			break;
+ 		case __SI_RT >> 16: /* This is not generated by the kernel as of now.  */
+ 		case __SI_MESGQ >> 16:
+ 			err |= __put_user(from->si_pid, &to->si_pid);

Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/changelog	2005-04-17 23:29:21 UTC (rev 2990)
@@ -1,5 +1,9 @@
 kernel-source-2.6.8 (2.6.8-16) UNRELEASED; urgency=low
 
+  * sparc64-sigpoll-2.6.8.dpatch:
+    [sparc64] Correctly fill out the siginfo_t fields upon delivery
+    of SIGPOLL and friends (Jurij Smakov) (closes: #272683)
+
   * smbfs-overrun.dpatch:
     Reinstated smbfs-overrun.dpatch to complete fix for CAN-2004-1191
     (Simon Horman) (closes: #300163)

Modified: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-16
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-16	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/series/2.6.8-16	2005-04-17 23:29:21 UTC (rev 2990)
@@ -26,3 +26,4 @@
 + arch-ia64-syscall-audit.dpatch
 + drivers-i2c-chips-eprom.dpatch
 + lib-rwsem-spinlock.dpatch
++ sparc64-sigpoll-2.6.8.dpatch

Added: trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/sparc64-sigpoll-2.6.8.dpatch
===================================================================
--- trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/sparc64-sigpoll-2.6.8.dpatch	2005-04-17 19:43:56 UTC (rev 2989)
+++ trunk/kernel/source/kernel-source-2.6.8-2.6.8/debian/patches/sparc64-sigpoll-2.6.8.dpatch	2005-04-17 23:29:21 UTC (rev 2990)
@@ -0,0 +1,35 @@
+#> In Debian's bug 272683 [0] submitter describes incorrect behavior of the 
+#> F_NOTIFY function of fcntl(), which reports the wrong number of the 
+#> file descriptor, on which the event has occured. I believe that the 
+#> culprit in this case is the copy_siginfo_to_user32() function in 
+#> arch/sparc64/kernel/signal32.c. Comparison with other arches (like
+#> ppc64), shows that the __SI_POLL branch in the case statement should 
+#> fill out the si_band and si_fd fields of the siginfo_t structure (si_fd is 
+#> used by fcntl() to pass the fd number back to user). Currently it does not 
+#> do that. Attached patch (against 2.6.11.7) separates __SI_FAULT and 
+#> __SI_POLL branches and does (presumably) the right thing in the latter by 
+#> copying the si_band and si_fd into the siginfo_t passed to user. With this 
+#> change the test program attached to the bug [0] works as expected (tested 
+#> on 2.6.8, against which the original bug was filed).
+#
+# Refs: http://marc.theaimsgroup.com/?l=linux-sparc&m=111363552425781&w=2
+#       http://marc.theaimsgroup.com/?l=linux-sparc&m=111377422704236&w=2
+#
+# -- Jurij Smakov <jurij@wooyd.org>  Sun, 17 Apr 2005 19:12:11 -0400
+--- a/arch/sparc64/kernel/signal32.c	2004-08-14 01:36:10.000000000 -0400
++++ b/arch/sparc64/kernel/signal32.c	2005-04-16 01:39:32.000000000 -0400
+@@ -130,10 +130,13 @@
+ 			err |= __put_user(from->si_uid, &to->si_uid);
+ 			break;
+ 		case __SI_FAULT >> 16:
+-		case __SI_POLL >> 16:
+ 			err |= __put_user(from->si_trapno, &to->si_trapno);
+ 			err |= __put_user((long)from->si_addr, &to->si_addr);
+ 			break;
++		case __SI_POLL >> 16:
++			err |= __put_user(from->si_band, &to->si_band);
++			err |= __put_user(from->si_fd, &to->si_fd);
++			break;
+ 		case __SI_RT >> 16: /* This is not generated by the kernel as of now.  */
+ 		case __SI_MESGQ >> 16:
+ 			err |= __put_user(from->si_pid, &to->si_pid);