uml: driver formatting fixes
Fix a bunch of formatting violations in the drivers: return(n) -> return n whitespace fixes emacs formatting comment removal breaking if(foo) return(n) into two lines There are also a couple of errno use bugs: using errno in a printk when the failure put errno into a local variable saving errno after a printk, which can change it Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
b47d2debf2
commit
56bd194bb2
@@ -158,7 +158,7 @@ static int winch_tramp(int fd, struct tty_struct *tty, int *fd_out)
|
|||||||
*/
|
*/
|
||||||
err = run_helper_thread(winch_thread, &data, CLONE_FILES, &stack, 0);
|
err = run_helper_thread(winch_thread, &data, CLONE_FILES, &stack, 0);
|
||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("fork of winch_thread failed - errno = %d\n", errno);
|
printk("fork of winch_thread failed - errno = %d\n", err);
|
||||||
goto out_close;
|
goto out_close;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -39,11 +39,11 @@ static struct sockaddr_un *new_addr(void *name, int len)
|
|||||||
sun = um_kmalloc(sizeof(struct sockaddr_un));
|
sun = um_kmalloc(sizeof(struct sockaddr_un));
|
||||||
if(sun == NULL){
|
if(sun == NULL){
|
||||||
printk("new_addr: allocation of sockaddr_un failed\n");
|
printk("new_addr: allocation of sockaddr_un failed\n");
|
||||||
return(NULL);
|
return NULL;
|
||||||
}
|
}
|
||||||
sun->sun_family = AF_UNIX;
|
sun->sun_family = AF_UNIX;
|
||||||
memcpy(sun->sun_path, name, len);
|
memcpy(sun->sun_path, name, len);
|
||||||
return(sun);
|
return sun;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int connect_to_switch(struct daemon_data *pri)
|
static int connect_to_switch(struct daemon_data *pri)
|
||||||
@@ -112,7 +112,7 @@ static int connect_to_switch(struct daemon_data *pri)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pri->data_addr = sun;
|
pri->data_addr = sun;
|
||||||
return(fd);
|
return fd;
|
||||||
|
|
||||||
out_free:
|
out_free:
|
||||||
kfree(sun);
|
kfree(sun);
|
||||||
@@ -120,7 +120,7 @@ static int connect_to_switch(struct daemon_data *pri)
|
|||||||
os_close_file(fd);
|
os_close_file(fd);
|
||||||
out:
|
out:
|
||||||
os_close_file(pri->control);
|
os_close_file(pri->control);
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void daemon_user_init(void *data, void *dev)
|
static void daemon_user_init(void *data, void *dev)
|
||||||
@@ -152,7 +152,7 @@ static void daemon_user_init(void *data, void *dev)
|
|||||||
static int daemon_open(void *data)
|
static int daemon_open(void *data)
|
||||||
{
|
{
|
||||||
struct daemon_data *pri = data;
|
struct daemon_data *pri = data;
|
||||||
return(pri->fd);
|
return pri->fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void daemon_remove(void *data)
|
static void daemon_remove(void *data)
|
||||||
@@ -176,12 +176,12 @@ int daemon_user_write(int fd, void *buf, int len, struct daemon_data *pri)
|
|||||||
{
|
{
|
||||||
struct sockaddr_un *data_addr = pri->data_addr;
|
struct sockaddr_un *data_addr = pri->data_addr;
|
||||||
|
|
||||||
return(net_sendto(fd, buf, len, data_addr, sizeof(*data_addr)));
|
return net_sendto(fd, buf, len, data_addr, sizeof(*data_addr));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int daemon_set_mtu(int mtu, void *data)
|
static int daemon_set_mtu(int mtu, void *data)
|
||||||
{
|
{
|
||||||
return(mtu);
|
return mtu;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct net_user_info daemon_user_info = {
|
const struct net_user_info daemon_user_info = {
|
||||||
@@ -194,14 +194,3 @@ const struct net_user_info daemon_user_info = {
|
|||||||
.delete_address = NULL,
|
.delete_address = NULL,
|
||||||
.max_packet = MAX_PACKET - ETH_HEADER_OTHER
|
.max_packet = MAX_PACKET - ETH_HEADER_OTHER
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
|
||||||
* Emacs will notice this stuff at the end of the file and automatically
|
|
||||||
* adjust the settings for this buffer only. This must remain at the end
|
|
||||||
* of the file.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* Local variables:
|
|
||||||
* c-file-style: "linux"
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
|
@@ -34,12 +34,12 @@ static struct sockaddr_in *new_addr(char *addr, unsigned short port)
|
|||||||
sin = um_kmalloc(sizeof(struct sockaddr_in));
|
sin = um_kmalloc(sizeof(struct sockaddr_in));
|
||||||
if(sin == NULL){
|
if(sin == NULL){
|
||||||
printk("new_addr: allocation of sockaddr_in failed\n");
|
printk("new_addr: allocation of sockaddr_in failed\n");
|
||||||
return(NULL);
|
return NULL;
|
||||||
}
|
}
|
||||||
sin->sin_family = AF_INET;
|
sin->sin_family = AF_INET;
|
||||||
sin->sin_addr.s_addr = in_aton(addr);
|
sin->sin_addr.s_addr = in_aton(addr);
|
||||||
sin->sin_port = htons(port);
|
sin->sin_port = htons(port);
|
||||||
return(sin);
|
return sin;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mcast_user_init(void *data, void *dev)
|
static void mcast_user_init(void *data, void *dev)
|
||||||
@@ -153,12 +153,12 @@ int mcast_user_write(int fd, void *buf, int len, struct mcast_data *pri)
|
|||||||
{
|
{
|
||||||
struct sockaddr_in *data_addr = pri->mcast_addr;
|
struct sockaddr_in *data_addr = pri->mcast_addr;
|
||||||
|
|
||||||
return(net_sendto(fd, buf, len, data_addr, sizeof(*data_addr)));
|
return net_sendto(fd, buf, len, data_addr, sizeof(*data_addr));
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mcast_set_mtu(int mtu, void *data)
|
static int mcast_set_mtu(int mtu, void *data)
|
||||||
{
|
{
|
||||||
return(mtu);
|
return mtu;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct net_user_info mcast_user_info = {
|
const struct net_user_info mcast_user_info = {
|
||||||
|
@@ -42,19 +42,19 @@ static int pcap_open(void *data)
|
|||||||
int err;
|
int err;
|
||||||
|
|
||||||
if(pri->pcap == NULL)
|
if(pri->pcap == NULL)
|
||||||
return(-ENODEV);
|
return -ENODEV;
|
||||||
|
|
||||||
if(pri->filter != NULL){
|
if(pri->filter != NULL){
|
||||||
err = dev_netmask(pri->dev, &netmask);
|
err = dev_netmask(pri->dev, &netmask);
|
||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("pcap_open : dev_netmask failed\n");
|
printk("pcap_open : dev_netmask failed\n");
|
||||||
return(-EIO);
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
pri->compiled = um_kmalloc(sizeof(struct bpf_program));
|
pri->compiled = um_kmalloc(sizeof(struct bpf_program));
|
||||||
if(pri->compiled == NULL){
|
if(pri->compiled == NULL){
|
||||||
printk("pcap_open : kmalloc failed\n");
|
printk("pcap_open : kmalloc failed\n");
|
||||||
return(-ENOMEM);
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = pcap_compile(pri->pcap,
|
err = pcap_compile(pri->pcap,
|
||||||
@@ -63,18 +63,18 @@ static int pcap_open(void *data)
|
|||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("pcap_open : pcap_compile failed - '%s'\n",
|
printk("pcap_open : pcap_compile failed - '%s'\n",
|
||||||
pcap_geterr(pri->pcap));
|
pcap_geterr(pri->pcap));
|
||||||
return(-EIO);
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = pcap_setfilter(pri->pcap, pri->compiled);
|
err = pcap_setfilter(pri->pcap, pri->compiled);
|
||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("pcap_open : pcap_setfilter failed - '%s'\n",
|
printk("pcap_open : pcap_setfilter failed - '%s'\n",
|
||||||
pcap_geterr(pri->pcap));
|
pcap_geterr(pri->pcap));
|
||||||
return(-EIO);
|
return -EIO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return(PCAP_FD(pri->pcap));
|
return PCAP_FD(pri->pcap);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pcap_remove(void *data)
|
static void pcap_remove(void *data)
|
||||||
@@ -114,11 +114,11 @@ int pcap_user_read(int fd, void *buffer, int len, struct pcap_data *pri)
|
|||||||
n = pcap_dispatch(pri->pcap, 1, handler, (u_char *) &hdata);
|
n = pcap_dispatch(pri->pcap, 1, handler, (u_char *) &hdata);
|
||||||
if(n < 0){
|
if(n < 0){
|
||||||
printk("pcap_dispatch failed - %s\n", pcap_geterr(pri->pcap));
|
printk("pcap_dispatch failed - %s\n", pcap_geterr(pri->pcap));
|
||||||
return(-EIO);
|
return -EIO;
|
||||||
}
|
}
|
||||||
else if(n == 0)
|
else if(n == 0)
|
||||||
return(0);
|
return 0;
|
||||||
return(hdata.len);
|
return hdata.len;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct net_user_info pcap_user_info = {
|
const struct net_user_info pcap_user_info = {
|
||||||
@@ -131,14 +131,3 @@ const struct net_user_info pcap_user_info = {
|
|||||||
.delete_address = NULL,
|
.delete_address = NULL,
|
||||||
.max_packet = MAX_PACKET - ETH_HEADER_OTHER
|
.max_packet = MAX_PACKET - ETH_HEADER_OTHER
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
|
||||||
* Emacs will notice this stuff at the end of the file and automatically
|
|
||||||
* adjust the settings for this buffer only. This must remain at the end
|
|
||||||
* of the file.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* Local variables:
|
|
||||||
* c-file-style: "linux"
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
|
@@ -47,8 +47,8 @@ int start_io_thread(unsigned long sp, int *fd_out)
|
|||||||
pid = clone(io_thread, (void *) sp, CLONE_FILES | CLONE_VM | SIGCHLD,
|
pid = clone(io_thread, (void *) sp, CLONE_FILES | CLONE_VM | SIGCHLD,
|
||||||
NULL);
|
NULL);
|
||||||
if(pid < 0){
|
if(pid < 0){
|
||||||
printk("start_io_thread - clone failed : errno = %d\n", errno);
|
|
||||||
err = -errno;
|
err = -errno;
|
||||||
|
printk("start_io_thread - clone failed : errno = %d\n", errno);
|
||||||
goto out_close;
|
goto out_close;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,16 +60,5 @@ int start_io_thread(unsigned long sp, int *fd_out)
|
|||||||
kernel_fd = -1;
|
kernel_fd = -1;
|
||||||
*fd_out = -1;
|
*fd_out = -1;
|
||||||
out:
|
out:
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
|
||||||
* Emacs will notice this stuff at the end of the file and automatically
|
|
||||||
* adjust the settings for this buffer only. This must remain at the end
|
|
||||||
* of the file.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* Local variables:
|
|
||||||
* c-file-style: "linux"
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
|
@@ -121,7 +121,7 @@ static int etap_tramp(char *dev, char *gate, int control_me,
|
|||||||
n = os_read_file(control_me, &c, sizeof(c));
|
n = os_read_file(control_me, &c, sizeof(c));
|
||||||
if(n != sizeof(c)){
|
if(n != sizeof(c)){
|
||||||
printk("etap_tramp : read of status failed, err = %d\n", -n);
|
printk("etap_tramp : read of status failed, err = %d\n", -n);
|
||||||
return(-EINVAL);
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if(c != 1){
|
if(c != 1){
|
||||||
printk("etap_tramp : uml_net failed\n");
|
printk("etap_tramp : uml_net failed\n");
|
||||||
@@ -132,7 +132,7 @@ static int etap_tramp(char *dev, char *gate, int control_me,
|
|||||||
else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 1))
|
else if(!WIFEXITED(status) || (WEXITSTATUS(status) != 1))
|
||||||
printk("uml_net didn't exit with status 1\n");
|
printk("uml_net didn't exit with status 1\n");
|
||||||
}
|
}
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int etap_open(void *data)
|
static int etap_open(void *data)
|
||||||
@@ -142,18 +142,19 @@ static int etap_open(void *data)
|
|||||||
int data_fds[2], control_fds[2], err, output_len;
|
int data_fds[2], control_fds[2], err, output_len;
|
||||||
|
|
||||||
err = tap_open_common(pri->dev, pri->gate_addr);
|
err = tap_open_common(pri->dev, pri->gate_addr);
|
||||||
if(err) return(err);
|
if(err)
|
||||||
|
return err;
|
||||||
|
|
||||||
err = os_pipe(data_fds, 0, 0);
|
err = os_pipe(data_fds, 0, 0);
|
||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("data os_pipe failed - err = %d\n", -err);
|
printk("data os_pipe failed - err = %d\n", -err);
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = os_pipe(control_fds, 1, 0);
|
err = os_pipe(control_fds, 1, 0);
|
||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("control os_pipe failed - err = %d\n", -err);
|
printk("control os_pipe failed - err = %d\n", -err);
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
err = etap_tramp(pri->dev_name, pri->gate_addr, control_fds[0],
|
err = etap_tramp(pri->dev_name, pri->gate_addr, control_fds[0],
|
||||||
@@ -171,13 +172,13 @@ static int etap_open(void *data)
|
|||||||
|
|
||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("etap_tramp failed - err = %d\n", -err);
|
printk("etap_tramp failed - err = %d\n", -err);
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
pri->data_fd = data_fds[0];
|
pri->data_fd = data_fds[0];
|
||||||
pri->control_fd = control_fds[0];
|
pri->control_fd = control_fds[0];
|
||||||
iter_addresses(pri->dev, etap_open_addr, &pri->control_fd);
|
iter_addresses(pri->dev, etap_open_addr, &pri->control_fd);
|
||||||
return(data_fds[0]);
|
return data_fds[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void etap_close(int fd, void *data)
|
static void etap_close(int fd, void *data)
|
||||||
@@ -195,7 +196,7 @@ static void etap_close(int fd, void *data)
|
|||||||
|
|
||||||
static int etap_set_mtu(int mtu, void *data)
|
static int etap_set_mtu(int mtu, void *data)
|
||||||
{
|
{
|
||||||
return(mtu);
|
return mtu;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void etap_add_addr(unsigned char *addr, unsigned char *netmask,
|
static void etap_add_addr(unsigned char *addr, unsigned char *netmask,
|
||||||
@@ -204,7 +205,8 @@ static void etap_add_addr(unsigned char *addr, unsigned char *netmask,
|
|||||||
struct ethertap_data *pri = data;
|
struct ethertap_data *pri = data;
|
||||||
|
|
||||||
tap_check_ips(pri->gate_addr, addr);
|
tap_check_ips(pri->gate_addr, addr);
|
||||||
if(pri->control_fd == -1) return;
|
if(pri->control_fd == -1)
|
||||||
|
return;
|
||||||
etap_open_addr(addr, netmask, &pri->control_fd);
|
etap_open_addr(addr, netmask, &pri->control_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,7 +215,8 @@ static void etap_del_addr(unsigned char *addr, unsigned char *netmask,
|
|||||||
{
|
{
|
||||||
struct ethertap_data *pri = data;
|
struct ethertap_data *pri = data;
|
||||||
|
|
||||||
if(pri->control_fd == -1) return;
|
if(pri->control_fd == -1)
|
||||||
|
return;
|
||||||
etap_close_addr(addr, netmask, &pri->control_fd);
|
etap_close_addr(addr, netmask, &pri->control_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,14 +230,3 @@ const struct net_user_info ethertap_user_info = {
|
|||||||
.delete_address = etap_del_addr,
|
.delete_address = etap_del_addr,
|
||||||
.max_packet = MAX_PACKET - ETH_HEADER_ETHERTAP
|
.max_packet = MAX_PACKET - ETH_HEADER_ETHERTAP
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
|
||||||
* Emacs will notice this stuff at the end of the file and automatically
|
|
||||||
* adjust the settings for this buffer only. This must remain at the end
|
|
||||||
* of the file.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* Local variables:
|
|
||||||
* c-file-style: "linux"
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
|
@@ -37,7 +37,8 @@ static void tuntap_add_addr(unsigned char *addr, unsigned char *netmask,
|
|||||||
struct tuntap_data *pri = data;
|
struct tuntap_data *pri = data;
|
||||||
|
|
||||||
tap_check_ips(pri->gate_addr, addr);
|
tap_check_ips(pri->gate_addr, addr);
|
||||||
if((pri->fd == -1) || pri->fixed_config) return;
|
if((pri->fd == -1) || pri->fixed_config)
|
||||||
|
return;
|
||||||
open_addr(addr, netmask, pri->dev_name);
|
open_addr(addr, netmask, pri->dev_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,7 +47,8 @@ static void tuntap_del_addr(unsigned char *addr, unsigned char *netmask,
|
|||||||
{
|
{
|
||||||
struct tuntap_data *pri = data;
|
struct tuntap_data *pri = data;
|
||||||
|
|
||||||
if((pri->fd == -1) || pri->fixed_config) return;
|
if((pri->fd == -1) || pri->fixed_config)
|
||||||
|
return;
|
||||||
close_addr(addr, netmask, pri->dev_name);
|
close_addr(addr, netmask, pri->dev_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +85,8 @@ static int tuntap_open_tramp(char *gate, int *fd_out, int me, int remote,
|
|||||||
|
|
||||||
pid = run_helper(tuntap_pre_exec, &data, argv, NULL);
|
pid = run_helper(tuntap_pre_exec, &data, argv, NULL);
|
||||||
|
|
||||||
if(pid < 0) return(-pid);
|
if(pid < 0)
|
||||||
|
return -pid;
|
||||||
|
|
||||||
os_close_file(remote);
|
os_close_file(remote);
|
||||||
|
|
||||||
@@ -114,16 +117,16 @@ static int tuntap_open_tramp(char *gate, int *fd_out, int me, int remote,
|
|||||||
cmsg = CMSG_FIRSTHDR(&msg);
|
cmsg = CMSG_FIRSTHDR(&msg);
|
||||||
if(cmsg == NULL){
|
if(cmsg == NULL){
|
||||||
printk("tuntap_open_tramp : didn't receive a message\n");
|
printk("tuntap_open_tramp : didn't receive a message\n");
|
||||||
return(-EINVAL);
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
if((cmsg->cmsg_level != SOL_SOCKET) ||
|
if((cmsg->cmsg_level != SOL_SOCKET) ||
|
||||||
(cmsg->cmsg_type != SCM_RIGHTS)){
|
(cmsg->cmsg_type != SCM_RIGHTS)){
|
||||||
printk("tuntap_open_tramp : didn't receive a descriptor\n");
|
printk("tuntap_open_tramp : didn't receive a descriptor\n");
|
||||||
return(-EINVAL);
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
*fd_out = ((int *) CMSG_DATA(cmsg))[0];
|
*fd_out = ((int *) CMSG_DATA(cmsg))[0];
|
||||||
os_set_exec_close(*fd_out, 1);
|
os_set_exec_close(*fd_out, 1);
|
||||||
return(0);
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tuntap_open(void *data)
|
static int tuntap_open(void *data)
|
||||||
@@ -135,7 +138,7 @@ static int tuntap_open(void *data)
|
|||||||
|
|
||||||
err = tap_open_common(pri->dev, pri->gate_addr);
|
err = tap_open_common(pri->dev, pri->gate_addr);
|
||||||
if(err < 0)
|
if(err < 0)
|
||||||
return(err);
|
return err;
|
||||||
|
|
||||||
if(pri->fixed_config){
|
if(pri->fixed_config){
|
||||||
pri->fd = os_open_file("/dev/net/tun",
|
pri->fd = os_open_file("/dev/net/tun",
|
||||||
@@ -143,7 +146,7 @@ static int tuntap_open(void *data)
|
|||||||
if(pri->fd < 0){
|
if(pri->fd < 0){
|
||||||
printk("Failed to open /dev/net/tun, err = %d\n",
|
printk("Failed to open /dev/net/tun, err = %d\n",
|
||||||
-pri->fd);
|
-pri->fd);
|
||||||
return(pri->fd);
|
return pri->fd;
|
||||||
}
|
}
|
||||||
memset(&ifr, 0, sizeof(ifr));
|
memset(&ifr, 0, sizeof(ifr));
|
||||||
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
|
ifr.ifr_flags = IFF_TAP | IFF_NO_PI;
|
||||||
@@ -160,7 +163,7 @@ static int tuntap_open(void *data)
|
|||||||
if(err < 0){
|
if(err < 0){
|
||||||
printk("tuntap_open : os_pipe failed - err = %d\n",
|
printk("tuntap_open : os_pipe failed - err = %d\n",
|
||||||
-err);
|
-err);
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer = get_output_buffer(&len);
|
buffer = get_output_buffer(&len);
|
||||||
@@ -175,7 +178,7 @@ static int tuntap_open(void *data)
|
|||||||
printk("%s", output);
|
printk("%s", output);
|
||||||
free_output_buffer(buffer);
|
free_output_buffer(buffer);
|
||||||
printk("tuntap_open_tramp failed - err = %d\n", -err);
|
printk("tuntap_open_tramp failed - err = %d\n", -err);
|
||||||
return(err);
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
pri->dev_name = uml_strdup(buffer);
|
pri->dev_name = uml_strdup(buffer);
|
||||||
@@ -187,7 +190,7 @@ static int tuntap_open(void *data)
|
|||||||
iter_addresses(pri->dev, open_addr, pri->dev_name);
|
iter_addresses(pri->dev, open_addr, pri->dev_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
return(pri->fd);
|
return pri->fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tuntap_close(int fd, void *data)
|
static void tuntap_close(int fd, void *data)
|
||||||
@@ -202,7 +205,7 @@ static void tuntap_close(int fd, void *data)
|
|||||||
|
|
||||||
static int tuntap_set_mtu(int mtu, void *data)
|
static int tuntap_set_mtu(int mtu, void *data)
|
||||||
{
|
{
|
||||||
return(mtu);
|
return mtu;
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct net_user_info tuntap_user_info = {
|
const struct net_user_info tuntap_user_info = {
|
||||||
@@ -215,14 +218,3 @@ const struct net_user_info tuntap_user_info = {
|
|||||||
.delete_address = tuntap_del_addr,
|
.delete_address = tuntap_del_addr,
|
||||||
.max_packet = MAX_PACKET
|
.max_packet = MAX_PACKET
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* Overrides for Emacs so that we follow Linus's tabbing style.
|
|
||||||
* Emacs will notice this stuff at the end of the file and automatically
|
|
||||||
* adjust the settings for this buffer only. This must remain at the end
|
|
||||||
* of the file.
|
|
||||||
* ---------------------------------------------------------------------------
|
|
||||||
* Local variables:
|
|
||||||
* c-file-style: "linux"
|
|
||||||
* End:
|
|
||||||
*/
|
|
||||||
|
Reference in New Issue
Block a user