X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fum%2Fdrivers%2Fport_user.c;h=14dd2002d2da6946bd61ac133198f112338cff31;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=1e8592ec1158fa64cd8d03ec7954696d8b4095f7;hpb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;p=linux-2.6.git diff --git a/arch/um/drivers/port_user.c b/arch/um/drivers/port_user.c index 1e8592ec1..14dd2002d 100644 --- a/arch/um/drivers/port_user.c +++ b/arch/um/drivers/port_user.c @@ -28,7 +28,7 @@ struct port_chan { char dev[sizeof("32768\0")]; }; -void *port_init(char *str, int device, struct chan_opts *opts) +static void *port_init(char *str, int device, struct chan_opts *opts) { struct port_chan *data; void *kern_data; @@ -65,7 +65,7 @@ void *port_init(char *str, int device, struct chan_opts *opts) return(NULL); } -void port_free(void *d) +static void port_free(void *d) { struct port_chan *data = d; @@ -73,7 +73,8 @@ void port_free(void *d) kfree(data); } -int port_open(int input, int output, int primary, void *d, char **dev_out) +static int port_open(int input, int output, int primary, void *d, + char **dev_out) { struct port_chan *data = d; int fd, err; @@ -92,7 +93,7 @@ int port_open(int input, int output, int primary, void *d, char **dev_out) return(fd); } -void port_close(int fd, void *d) +static void port_close(int fd, void *d) { struct port_chan *data = d; @@ -100,7 +101,7 @@ void port_close(int fd, void *d) os_close_file(fd); } -int port_console_write(int fd, const char *buf, int n, void *d) +static int port_console_write(int fd, const char *buf, int n, void *d) { struct port_chan *data = d; @@ -123,12 +124,18 @@ struct chan_ops port_ops = { int port_listen_fd(int port) { struct sockaddr_in addr; - int fd, err; + int fd, err, arg; fd = socket(PF_INET, SOCK_STREAM, 0); if(fd == -1) return(-errno); + arg = 1; + if(setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &arg, sizeof(arg)) < 0){ + err = -errno; + goto out; + } + addr.sin_family = AF_INET; addr.sin_port = htons(port); addr.sin_addr.s_addr = htonl(INADDR_ANY);