From patchwork Fri Jul 26 21:01:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergei Trofimovich X-Patchwork-Id: 1137643 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gentoo.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 45wM2B6704z9s8m for ; Sat, 27 Jul 2019 07:01:22 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728226AbfGZVBV (ORCPT ); Fri, 26 Jul 2019 17:01:21 -0400 Received: from smtp.gentoo.org ([140.211.166.183]:39044 "EHLO smtp.gentoo.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726416AbfGZVBU (ORCPT ); Fri, 26 Jul 2019 17:01:20 -0400 Received: from sf.home (host86-142-46-27.range86-142.btcentralplus.com [86.142.46.27]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: slyfox) by smtp.gentoo.org (Postfix) with ESMTPSA id CE79034891D; Fri, 26 Jul 2019 21:01:19 +0000 (UTC) Received: by sf.home (Postfix, from userid 1000) id 5A3692440A511; Fri, 26 Jul 2019 22:01:15 +0100 (BST) From: Sergei Trofimovich To: Stephen Hemminger Cc: Sergei Trofimovich , netdev@vger.kernel.org Subject: [PATCH v2] iproute2: devlink: port from sys/queue.h to list.h Date: Fri, 26 Jul 2019 22:01:05 +0100 Message-Id: <20190726210105.25458-1-slyfox@gentoo.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190726112956.3b54f906@hermes.lan> References: <20190726112956.3b54f906@hermes.lan> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org sys/queue.h does not exist on linux-musl targets and fails build as: devlink.c:28:10: fatal error: sys/queue.h: No such file or directory 28 | #include | ^~~~~~~~~~~~~ The change ports to list.h API and drops dependency of 'sys/queue.h'. The API maps one-to-one. Build-tested on linux-musl and linux-glibc. Bug: https://bugs.gentoo.org/690486 CC: Stephen Hemminger CC: netdev@vger.kernel.org Signed-off-by: Sergei Trofimovich --- devlink/devlink.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/devlink/devlink.c b/devlink/devlink.c index bb023c0c..0ea401ae 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -25,7 +25,6 @@ #include #include #include -#include #include "SNAPSHOT.h" #include "list.h" @@ -5981,13 +5980,13 @@ static int fmsg_value_show(struct dl *dl, int type, struct nlattr *nl_data) struct nest_qentry { int attr_type; - TAILQ_ENTRY(nest_qentry) nest_entries; + struct list_head nest_entries; }; struct fmsg_cb_data { struct dl *dl; uint8_t value_type; - TAILQ_HEAD(, nest_qentry) qhead; + struct list_head qhead; }; static int cmd_fmsg_nest_queue(struct fmsg_cb_data *fmsg_data, @@ -6001,13 +6000,13 @@ static int cmd_fmsg_nest_queue(struct fmsg_cb_data *fmsg_data, return -ENOMEM; entry->attr_type = *attr_value; - TAILQ_INSERT_HEAD(&fmsg_data->qhead, entry, nest_entries); + list_add(&fmsg_data->qhead, &entry->nest_entries); } else { - if (TAILQ_EMPTY(&fmsg_data->qhead)) + if (list_empty(&fmsg_data->qhead)) return MNL_CB_ERROR; - entry = TAILQ_FIRST(&fmsg_data->qhead); + entry = list_first_entry(&fmsg_data->qhead, struct nest_qentry, nest_entries); *attr_value = entry->attr_type; - TAILQ_REMOVE(&fmsg_data->qhead, entry, nest_entries); + list_del(&entry->nest_entries); free(entry); } return MNL_CB_OK; @@ -6116,7 +6115,7 @@ static int cmd_health_object_common(struct dl *dl, uint8_t cmd, uint16_t flags) return err; data.dl = dl; - TAILQ_INIT(&data.qhead); + INIT_LIST_HEAD(&data.qhead); err = _mnlg_socket_sndrcv(dl->nlg, nlh, cmd_fmsg_object_cb, &data); return err; }