mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Janet Morgan <janetmor@us.ibm.com>
To: m.c.p@wolk-project.de (Marc-Christian Petersen)
Cc: linux-kernel@vger.kernel.org, janetmor@us.ibm.com (Janet Morgan)
Subject: Re: [PATCH] sys_epoll for 2.4
Date: Fri, 13 Dec 2002 18:40:38 -0800 (PST)	[thread overview]
Message-ID: <200212140240.gBE2edd16510@eng2.beaverton.ibm.com> (raw)
In-Reply-To: <200212132038.23469.m.c.p@wolk-project.de> from "Marc-Christian Petersen" at Dec 13, 2002 07:40:45 PM PST

> > The attached patch is a port of Davide's sys_epoll from 2.5.51 to 2.4.20.
> I get this while make modules:
> 
> gcc -D__KERNEL__ -I/usr/src/linux-2.4.20/include  -Wall -Wstrict-prototypes 
> -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer 
> -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DSMBFS_PARANOIA -nostdinc 
> -iwithprefix include -DKBUILD_BASENAME=sock  -c -o sock.o sock.c
> sock.c: In function `smb_receive_poll':
> sock.c:323: warning: passing arg 1 of `poll_initwait' from incompatible 
> pointer type
> sock.c:328: warning: passing arg 1 of `poll_freewait' from incompatible 
> pointer type
> sock.c:334: warning: passing arg 1 of `poll_freewait' from incompatible 
> pointer type
> sock.c:337: structure has no member named `error'
> sock.c:338: structure has no member named `error'
> make[2]: *** [sock.o] Error 1
> make[2]: Leaving directory `/usr/src/linux-2.4.20/fs/smbfs'
> make[1]: *** [_modsubdir_smbfs] Error 2
> make[1]: Leaving directory `/usr/src/linux-2.4.20/fs'
> make: *** [_mod_fs] Error 2

Marc, 

Thanks for finding this.  fs/ncpfs/sock.c is likewise broken.

The following patch compiles, but I haven't tested it.


--- linux-2.4.20/fs/smbfs/sock.c	Thu Nov 28 15:53:15 2002
+++ sys_epoll/fs/smbfs/sock.c	Fri Dec 13 14:50:15 2002
@@ -314,16 +314,18 @@
 smb_receive_poll(struct smb_sb_info *server)
 {
 	struct file *file = server->sock_file;
-	poll_table wait_table;
+	struct poll_wqueues wait_table;
+	poll_table *wait;
 	int result = 0;
 	int timeout = server->mnt->timeo * HZ;
 	int mask;
 
 	for (;;) {
 		poll_initwait(&wait_table);
+		wait = &wait_table.pt;
                 set_current_state(TASK_INTERRUPTIBLE);
 
-		mask = file->f_op->poll(file, &wait_table);
+		mask = file->f_op->poll(file, wait);
 		if (mask & POLLIN) {
 			poll_freewait(&wait_table);
 			current->state = TASK_RUNNING;
--- linux-2.4.20/fs/ncpfs/sock.c	Sat Jan 20 08:51:51 2001
+++ sys_epoll/fs/ncpfs/sock.c	Fri Dec 13 16:59:07 2002
@@ -86,7 +86,8 @@
 	struct socket *sock;
 	int result;
 	char *start = server->packet;
-	poll_table wait_table;
+	struct poll_wqueues wait_table;
+	poll_table *wait;
 	int init_timeout, max_timeout;
 	int timeout;
 	int retrans;
@@ -136,11 +137,12 @@
 		}
 	      re_select:
 		poll_initwait(&wait_table);
+		wait = &wait_table.pt;
 		/* mb() is not necessary because ->poll() will serialize
 		   instructions adding the wait_table waitqueues in the
 		   waitqueue-head before going to calculate the mask-retval. */
 		__set_current_state(TASK_INTERRUPTIBLE);
-		if (!(sock->ops->poll(file, sock, &wait_table) & POLLIN)) {
+		if (!(sock->ops->poll(file, sock, wait) & POLLIN)) {
 			int timed_out;
 			if (timeout > max_timeout) {
 				/* JEJB/JSP 2/7/94
@@ -261,7 +263,8 @@
 }
 
 static int do_tcp_rcv(struct ncp_server *server, void *buffer, size_t len) {
-	poll_table wait_table;
+	struct poll_wqueues wait_table;
+	poll_table *wait;
 	struct file *file;
 	struct socket *sock;
 	int init_timeout;
@@ -281,11 +284,12 @@
 
 	while (len) {
 		poll_initwait(&wait_table);
+		wait = &wait_table.pt;
 		/* mb() is not necessary because ->poll() will serialize
 		   instructions adding the wait_table waitqueues in the
 		   waitqueue-head before going to calculate the mask-retval. */
 		__set_current_state(TASK_INTERRUPTIBLE);
-		if (!(sock->ops->poll(file, sock, &wait_table) & POLLIN)) {
+		if (!(sock->ops->poll(file, sock, wait) & POLLIN)) {
 			init_timeout = schedule_timeout(init_timeout);
 			poll_freewait(&wait_table);
 			current->state = TASK_RUNNING;

  reply	other threads:[~2002-12-14  2:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-12 23:03 Janet Morgan
2002-12-12 23:22 ` Davide Libenzi
2002-12-13 19:40 ` Marc-Christian Petersen
2002-12-14  2:40   ` Janet Morgan [this message]
2002-12-14  3:36     ` Marc-Christian Petersen
2002-12-17  2:02       ` Janet Morgan

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=200212140240.gBE2edd16510@eng2.beaverton.ibm.com \
    --to=janetmor@us.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.c.p@wolk-project.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®