Commit 82f9e2d5 authored by Daniel Borkmann's avatar Daniel Borkmann

Merge branch 'bpf-af-xdp-cleanups'

Björn Töpel says:

====================
This series contain "cosmetics only" follow-up patches for AF_XDP.

Thanks to Daniel for suggesting them!
====================
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parents a7862293 c2f4374b
/* SPDX-License-Identifier: GPL-2.0 /* SPDX-License-Identifier: GPL-2.0 */
* AF_XDP internal functions /* AF_XDP internal functions
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/ */
#ifndef _LINUX_XDP_SOCK_H #ifndef _LINUX_XDP_SOCK_H
......
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
* /*
* if_xdp: XDP socket user-space interface * if_xdp: XDP socket user-space interface
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
* *
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* Author(s): Björn Töpel <bjorn.topel@intel.com> * Author(s): Björn Töpel <bjorn.topel@intel.com>
* Magnus Karlsson <magnus.karlsson@intel.com> * Magnus Karlsson <magnus.karlsson@intel.com>
*/ */
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* XSKMAP used for AF_XDP sockets /* XSKMAP used for AF_XDP sockets
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/ */
#include <linux/bpf.h> #include <linux/bpf.h>
......
obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o obj-$(CONFIG_XDP_SOCKETS) += xsk.o xdp_umem.o xsk_queue.o
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* XDP user-space packet buffer /* XDP user-space packet buffer
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/ */
#include <linux/init.h> #include <linux/init.h>
...@@ -29,7 +20,7 @@ int xdp_umem_create(struct xdp_umem **umem) ...@@ -29,7 +20,7 @@ int xdp_umem_create(struct xdp_umem **umem)
{ {
*umem = kzalloc(sizeof(**umem), GFP_KERNEL); *umem = kzalloc(sizeof(**umem), GFP_KERNEL);
if (!(*umem)) if (!*umem)
return -ENOMEM; return -ENOMEM;
return 0; return 0;
...@@ -256,5 +247,5 @@ int xdp_umem_reg(struct xdp_umem *umem, struct xdp_umem_reg *mr) ...@@ -256,5 +247,5 @@ int xdp_umem_reg(struct xdp_umem *umem, struct xdp_umem_reg *mr)
bool xdp_umem_validate_queues(struct xdp_umem *umem) bool xdp_umem_validate_queues(struct xdp_umem *umem)
{ {
return (umem->fq && umem->cq); return umem->fq && umem->cq;
} }
/* SPDX-License-Identifier: GPL-2.0 /* SPDX-License-Identifier: GPL-2.0 */
* XDP user-space packet buffer /* XDP user-space packet buffer
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/ */
#ifndef XDP_UMEM_H_ #ifndef XDP_UMEM_H_
......
/* SPDX-License-Identifier: GPL-2.0 /* SPDX-License-Identifier: GPL-2.0 */
* XDP user-space packet buffer /* XDP user-space packet buffer
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/ */
#ifndef XDP_UMEM_PROPS_H_ #ifndef XDP_UMEM_PROPS_H_
......
...@@ -5,15 +5,6 @@ ...@@ -5,15 +5,6 @@
* applications. * applications.
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
* *
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* Author(s): Björn Töpel <bjorn.topel@intel.com> * Author(s): Björn Töpel <bjorn.topel@intel.com>
* Magnus Karlsson <magnus.karlsson@intel.com> * Magnus Karlsson <magnus.karlsson@intel.com>
*/ */
...@@ -554,24 +545,24 @@ static struct proto xsk_proto = { ...@@ -554,24 +545,24 @@ static struct proto xsk_proto = {
}; };
static const struct proto_ops xsk_proto_ops = { static const struct proto_ops xsk_proto_ops = {
.family = PF_XDP, .family = PF_XDP,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = xsk_release, .release = xsk_release,
.bind = xsk_bind, .bind = xsk_bind,
.connect = sock_no_connect, .connect = sock_no_connect,
.socketpair = sock_no_socketpair, .socketpair = sock_no_socketpair,
.accept = sock_no_accept, .accept = sock_no_accept,
.getname = sock_no_getname, .getname = sock_no_getname,
.poll = xsk_poll, .poll = xsk_poll,
.ioctl = sock_no_ioctl, .ioctl = sock_no_ioctl,
.listen = sock_no_listen, .listen = sock_no_listen,
.shutdown = sock_no_shutdown, .shutdown = sock_no_shutdown,
.setsockopt = xsk_setsockopt, .setsockopt = xsk_setsockopt,
.getsockopt = xsk_getsockopt, .getsockopt = xsk_getsockopt,
.sendmsg = xsk_sendmsg, .sendmsg = xsk_sendmsg,
.recvmsg = sock_no_recvmsg, .recvmsg = sock_no_recvmsg,
.mmap = xsk_mmap, .mmap = xsk_mmap,
.sendpage = sock_no_sendpage, .sendpage = sock_no_sendpage,
}; };
static void xsk_destruct(struct sock *sk) static void xsk_destruct(struct sock *sk)
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* XDP user-space ring structure /* XDP user-space ring structure
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/ */
#include <linux/slab.h> #include <linux/slab.h>
...@@ -31,8 +22,7 @@ static u32 xskq_umem_get_ring_size(struct xsk_queue *q) ...@@ -31,8 +22,7 @@ static u32 xskq_umem_get_ring_size(struct xsk_queue *q)
static u32 xskq_rxtx_get_ring_size(struct xsk_queue *q) static u32 xskq_rxtx_get_ring_size(struct xsk_queue *q)
{ {
return (sizeof(struct xdp_ring) + return sizeof(struct xdp_ring) + q->nentries * sizeof(struct xdp_desc);
q->nentries * sizeof(struct xdp_desc));
} }
struct xsk_queue *xskq_create(u32 nentries, bool umem_queue) struct xsk_queue *xskq_create(u32 nentries, bool umem_queue)
......
/* SPDX-License-Identifier: GPL-2.0 /* SPDX-License-Identifier: GPL-2.0 */
* XDP user-space ring structure /* XDP user-space ring structure
* Copyright(c) 2018 Intel Corporation. * Copyright(c) 2018 Intel Corporation.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/ */
#ifndef _LINUX_XSK_QUEUE_H #ifndef _LINUX_XSK_QUEUE_H
...@@ -232,12 +223,12 @@ static inline void xskq_produce_flush_desc(struct xsk_queue *q) ...@@ -232,12 +223,12 @@ static inline void xskq_produce_flush_desc(struct xsk_queue *q)
static inline bool xskq_full_desc(struct xsk_queue *q) static inline bool xskq_full_desc(struct xsk_queue *q)
{ {
return (xskq_nb_avail(q, q->nentries) == q->nentries); return xskq_nb_avail(q, q->nentries) == q->nentries;
} }
static inline bool xskq_empty_desc(struct xsk_queue *q) static inline bool xskq_empty_desc(struct xsk_queue *q)
{ {
return (xskq_nb_free(q, q->prod_tail, 1) == q->nentries); return xskq_nb_free(q, q->prod_tail, 1) == q->nentries;
} }
void xskq_set_umem(struct xsk_queue *q, struct xdp_umem_props *umem_props); void xskq_set_umem(struct xsk_queue *q, struct xdp_umem_props *umem_props);
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
/* Copyright(c) 2017 - 2018 Intel Corporation. /* Copyright(c) 2017 - 2018 Intel Corporation. */
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
* version 2, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*/
#include <assert.h> #include <assert.h>
#include <errno.h> #include <errno.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment