net/af_iucv: clean up function prototypes
Remove a bunch of forward declarations (trivially shifting code around where needed), and make a few functions static. Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
dca1262f97
commit
e9a36ca5f6
@@ -158,12 +158,4 @@ struct iucv_sock_list {
|
|||||||
atomic_t autobind_name;
|
atomic_t autobind_name;
|
||||||
};
|
};
|
||||||
|
|
||||||
__poll_t iucv_sock_poll(struct file *file, struct socket *sock,
|
|
||||||
poll_table *wait);
|
|
||||||
void iucv_sock_link(struct iucv_sock_list *l, struct sock *s);
|
|
||||||
void iucv_sock_unlink(struct iucv_sock_list *l, struct sock *s);
|
|
||||||
void iucv_accept_enqueue(struct sock *parent, struct sock *sk);
|
|
||||||
void iucv_accept_unlink(struct sock *sk);
|
|
||||||
struct sock *iucv_accept_dequeue(struct sock *parent, struct socket *newsock);
|
|
||||||
|
|
||||||
#endif /* __IUCV_H */
|
#endif /* __IUCV_H */
|
||||||
|
@@ -37,8 +37,6 @@
|
|||||||
|
|
||||||
static char iucv_userid[80];
|
static char iucv_userid[80];
|
||||||
|
|
||||||
static const struct proto_ops iucv_sock_ops;
|
|
||||||
|
|
||||||
static struct proto iucv_proto = {
|
static struct proto iucv_proto = {
|
||||||
.name = "AF_IUCV",
|
.name = "AF_IUCV",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
@@ -86,13 +84,11 @@ do { \
|
|||||||
__ret; \
|
__ret; \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
static struct sock *iucv_accept_dequeue(struct sock *parent,
|
||||||
|
struct socket *newsock);
|
||||||
static void iucv_sock_kill(struct sock *sk);
|
static void iucv_sock_kill(struct sock *sk);
|
||||||
static void iucv_sock_close(struct sock *sk);
|
static void iucv_sock_close(struct sock *sk);
|
||||||
|
|
||||||
static int afiucv_hs_rcv(struct sk_buff *skb, struct net_device *dev,
|
|
||||||
struct packet_type *pt, struct net_device *orig_dev);
|
|
||||||
static int afiucv_hs_send(struct iucv_message *imsg, struct sock *sock,
|
|
||||||
struct sk_buff *skb, u8 flags);
|
|
||||||
static void afiucv_hs_callback_txnotify(struct sk_buff *, enum iucv_tx_notify);
|
static void afiucv_hs_callback_txnotify(struct sk_buff *, enum iucv_tx_notify);
|
||||||
|
|
||||||
/* Call Back functions */
|
/* Call Back functions */
|
||||||
@@ -331,6 +327,20 @@ static void iucv_sock_cleanup_listen(struct sock *parent)
|
|||||||
parent->sk_state = IUCV_CLOSED;
|
parent->sk_state = IUCV_CLOSED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void iucv_sock_link(struct iucv_sock_list *l, struct sock *sk)
|
||||||
|
{
|
||||||
|
write_lock_bh(&l->lock);
|
||||||
|
sk_add_node(sk, &l->head);
|
||||||
|
write_unlock_bh(&l->lock);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void iucv_sock_unlink(struct iucv_sock_list *l, struct sock *sk)
|
||||||
|
{
|
||||||
|
write_lock_bh(&l->lock);
|
||||||
|
sk_del_node_init(sk);
|
||||||
|
write_unlock_bh(&l->lock);
|
||||||
|
}
|
||||||
|
|
||||||
/* Kill socket (only if zapped and orphaned) */
|
/* Kill socket (only if zapped and orphaned) */
|
||||||
static void iucv_sock_kill(struct sock *sk)
|
static void iucv_sock_kill(struct sock *sk)
|
||||||
{
|
{
|
||||||
@@ -503,53 +513,7 @@ static struct sock *iucv_sock_alloc(struct socket *sock, int proto, gfp_t prio,
|
|||||||
return sk;
|
return sk;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create an IUCV socket */
|
static void iucv_accept_enqueue(struct sock *parent, struct sock *sk)
|
||||||
static int iucv_sock_create(struct net *net, struct socket *sock, int protocol,
|
|
||||||
int kern)
|
|
||||||
{
|
|
||||||
struct sock *sk;
|
|
||||||
|
|
||||||
if (protocol && protocol != PF_IUCV)
|
|
||||||
return -EPROTONOSUPPORT;
|
|
||||||
|
|
||||||
sock->state = SS_UNCONNECTED;
|
|
||||||
|
|
||||||
switch (sock->type) {
|
|
||||||
case SOCK_STREAM:
|
|
||||||
sock->ops = &iucv_sock_ops;
|
|
||||||
break;
|
|
||||||
case SOCK_SEQPACKET:
|
|
||||||
/* currently, proto ops can handle both sk types */
|
|
||||||
sock->ops = &iucv_sock_ops;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return -ESOCKTNOSUPPORT;
|
|
||||||
}
|
|
||||||
|
|
||||||
sk = iucv_sock_alloc(sock, protocol, GFP_KERNEL, kern);
|
|
||||||
if (!sk)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
iucv_sock_init(sk, NULL);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void iucv_sock_link(struct iucv_sock_list *l, struct sock *sk)
|
|
||||||
{
|
|
||||||
write_lock_bh(&l->lock);
|
|
||||||
sk_add_node(sk, &l->head);
|
|
||||||
write_unlock_bh(&l->lock);
|
|
||||||
}
|
|
||||||
|
|
||||||
void iucv_sock_unlink(struct iucv_sock_list *l, struct sock *sk)
|
|
||||||
{
|
|
||||||
write_lock_bh(&l->lock);
|
|
||||||
sk_del_node_init(sk);
|
|
||||||
write_unlock_bh(&l->lock);
|
|
||||||
}
|
|
||||||
|
|
||||||
void iucv_accept_enqueue(struct sock *parent, struct sock *sk)
|
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
struct iucv_sock *par = iucv_sk(parent);
|
struct iucv_sock *par = iucv_sk(parent);
|
||||||
@@ -562,7 +526,7 @@ void iucv_accept_enqueue(struct sock *parent, struct sock *sk)
|
|||||||
sk_acceptq_added(parent);
|
sk_acceptq_added(parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void iucv_accept_unlink(struct sock *sk)
|
static void iucv_accept_unlink(struct sock *sk)
|
||||||
{
|
{
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
struct iucv_sock *par = iucv_sk(iucv_sk(sk)->parent);
|
struct iucv_sock *par = iucv_sk(iucv_sk(sk)->parent);
|
||||||
@@ -575,7 +539,8 @@ void iucv_accept_unlink(struct sock *sk)
|
|||||||
sock_put(sk);
|
sock_put(sk);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sock *iucv_accept_dequeue(struct sock *parent, struct socket *newsock)
|
static struct sock *iucv_accept_dequeue(struct sock *parent,
|
||||||
|
struct socket *newsock)
|
||||||
{
|
{
|
||||||
struct iucv_sock *isk, *n;
|
struct iucv_sock *isk, *n;
|
||||||
struct sock *sk;
|
struct sock *sk;
|
||||||
@@ -1406,7 +1371,7 @@ static inline __poll_t iucv_accept_poll(struct sock *parent)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
__poll_t iucv_sock_poll(struct file *file, struct socket *sock,
|
static __poll_t iucv_sock_poll(struct file *file, struct socket *sock,
|
||||||
poll_table *wait)
|
poll_table *wait)
|
||||||
{
|
{
|
||||||
struct sock *sk = sock->sk;
|
struct sock *sk = sock->sk;
|
||||||
@@ -2291,6 +2256,35 @@ static const struct proto_ops iucv_sock_ops = {
|
|||||||
.getsockopt = iucv_sock_getsockopt,
|
.getsockopt = iucv_sock_getsockopt,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int iucv_sock_create(struct net *net, struct socket *sock, int protocol,
|
||||||
|
int kern)
|
||||||
|
{
|
||||||
|
struct sock *sk;
|
||||||
|
|
||||||
|
if (protocol && protocol != PF_IUCV)
|
||||||
|
return -EPROTONOSUPPORT;
|
||||||
|
|
||||||
|
sock->state = SS_UNCONNECTED;
|
||||||
|
|
||||||
|
switch (sock->type) {
|
||||||
|
case SOCK_STREAM:
|
||||||
|
case SOCK_SEQPACKET:
|
||||||
|
/* currently, proto ops can handle both sk types */
|
||||||
|
sock->ops = &iucv_sock_ops;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return -ESOCKTNOSUPPORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
sk = iucv_sock_alloc(sock, protocol, GFP_KERNEL, kern);
|
||||||
|
if (!sk)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
iucv_sock_init(sk, NULL);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct net_proto_family iucv_sock_family_ops = {
|
static const struct net_proto_family iucv_sock_family_ops = {
|
||||||
.family = AF_IUCV,
|
.family = AF_IUCV,
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
Reference in New Issue
Block a user