* [PATCH net-next v2 4/6] net/ncsi: Don't mark configured channels inactive
From: Samuel Mendoza-Jonas @ 2018-10-23 21:51 UTC (permalink / raw)
To: netdev
Cc: Samuel Mendoza-Jonas, David S . Miller, Justin.Lee1, linux-kernel,
openbmc
In-Reply-To: <20181023215201.27315-1-sam@mendozajonas.com>
The concepts of a channel being 'active' and it having link are slightly
muddled in the NCSI driver. Tweak this slightly so that
NCSI_CHANNEL_ACTIVE represents a channel that has been configured and
enabled, and NCSI_CHANNEL_INACTIVE represents a de-configured channel.
This distinction is important because a channel can be 'active' but have
its link down; in this case the channel may still need to be configured
so that it may receive AEN link-state-change packets.
Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
---
net/ncsi/ncsi-aen.c | 17 +++++++++++------
net/ncsi/ncsi-manage.c | 3 +--
2 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/net/ncsi/ncsi-aen.c b/net/ncsi/ncsi-aen.c
index 65f47a648be3..57f77e5d381a 100644
--- a/net/ncsi/ncsi-aen.c
+++ b/net/ncsi/ncsi-aen.c
@@ -57,6 +57,7 @@ static int ncsi_aen_handler_lsc(struct ncsi_dev_priv *ndp,
int state;
unsigned long old_data, data;
unsigned long flags;
+ bool had_link, has_link;
/* Find the NCSI channel */
ncsi_find_package_and_channel(ndp, h->common.channel, NULL, &nc);
@@ -73,6 +74,9 @@ static int ncsi_aen_handler_lsc(struct ncsi_dev_priv *ndp,
ncm->data[2] = data;
ncm->data[4] = ntohl(lsc->oem_status);
+ had_link = !!(old_data & 0x1);
+ has_link = !!(data & 0x1);
+
netdev_dbg(ndp->ndev.dev, "NCSI: LSC AEN - channel %u state %s\n",
nc->id, data & 0x1 ? "up" : "down");
@@ -80,15 +84,16 @@ static int ncsi_aen_handler_lsc(struct ncsi_dev_priv *ndp,
state = nc->state;
spin_unlock_irqrestore(&nc->lock, flags);
- if (!((old_data ^ data) & 0x1) || chained)
- return 0;
- if (!(state == NCSI_CHANNEL_INACTIVE && (data & 0x1)) &&
- !(state == NCSI_CHANNEL_ACTIVE && !(data & 0x1)))
+ if (state == NCSI_CHANNEL_INACTIVE)
+ netdev_warn(ndp->ndev.dev,
+ "NCSI: Inactive channel %u received AEN!\n",
+ nc->id);
+
+ if ((had_link == has_link) || chained)
return 0;
- if (state == NCSI_CHANNEL_ACTIVE)
+ if (had_link)
ndp->flags |= NCSI_DEV_RESHUFFLE;
-
ncsi_stop_channel_monitor(nc);
spin_lock_irqsave(&ndp->lock, flags);
list_add_tail_rcu(&nc->link, &ndp->channel_queue);
diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c
index 013437b42e94..014321ad31d3 100644
--- a/net/ncsi/ncsi-manage.c
+++ b/net/ncsi/ncsi-manage.c
@@ -916,12 +916,11 @@ static void ncsi_configure_channel(struct ncsi_dev_priv *ndp)
break;
}
+ nc->state = NCSI_CHANNEL_ACTIVE;
if (nc->modes[NCSI_MODE_LINK].data[2] & 0x1) {
hot_nc = nc;
- nc->state = NCSI_CHANNEL_ACTIVE;
} else {
hot_nc = NULL;
- nc->state = NCSI_CHANNEL_INACTIVE;
netdev_dbg(ndp->ndev.dev,
"NCSI: channel %u link down after config\n",
nc->id);
--
2.19.1
^ permalink raw reply related
* [PATCH net 1/1] net/smc: save link group ptr before calling smc_buf_unuse
From: Ursula Braun @ 2018-10-23 13:48 UTC (permalink / raw)
To: davem; +Cc: netdev, linux-s390, schwidefsky, heiko.carstens, raspl, ubraun
From: Karsten Graul <kgraul@linux.ibm.com>
The pointer to the link group is unset in the smc connection structure
right before the call to smc_buf_unuse. Save the pointer and provide it
to smc_buf_unuse.
Fixes: a6920d1d130c ("net/smc: handle unregistered buffers")
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: Ursula Braun <ubraun@linux.ibm.com>
---
net/smc/smc_core.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/net/smc/smc_core.c b/net/smc/smc_core.c
index e871368500e3..12d8493f72f4 100644
--- a/net/smc/smc_core.c
+++ b/net/smc/smc_core.c
@@ -291,7 +291,8 @@ static int smc_lgr_create(struct smc_sock *smc, bool is_smcd,
return rc;
}
-static void smc_buf_unuse(struct smc_connection *conn)
+static void smc_buf_unuse(struct smc_connection *conn,
+ struct smc_link_group *lgr)
{
if (conn->sndbuf_desc)
conn->sndbuf_desc->used = 0;
@@ -301,8 +302,6 @@ static void smc_buf_unuse(struct smc_connection *conn)
conn->rmb_desc->used = 0;
} else {
/* buf registration failed, reuse not possible */
- struct smc_link_group *lgr = conn->lgr;
-
write_lock_bh(&lgr->rmbs_lock);
list_del(&conn->rmb_desc->list);
write_unlock_bh(&lgr->rmbs_lock);
@@ -315,6 +314,8 @@ static void smc_buf_unuse(struct smc_connection *conn)
/* remove a finished connection from its link group */
void smc_conn_free(struct smc_connection *conn)
{
+ struct smc_link_group *lgr;
+
if (!conn->lgr)
return;
if (conn->lgr->is_smcd) {
@@ -323,8 +324,9 @@ void smc_conn_free(struct smc_connection *conn)
} else {
smc_cdc_tx_dismiss_slots(conn);
}
+ lgr = conn->lgr; /* smc_lgr_unregister_conn() unsets lgr */
smc_lgr_unregister_conn(conn);
- smc_buf_unuse(conn);
+ smc_buf_unuse(conn, lgr);
}
static void smc_link_clear(struct smc_link *lnk)
--
2.16.4
^ permalink raw reply related
* Re: Improving accuracy of PHC readings
From: Miroslav Lichvar @ 2018-10-23 14:07 UTC (permalink / raw)
To: Richard Cochran; +Cc: netdev, Keller, Jacob E
In-Reply-To: <20181022224802.5injr523fgw2c4qz@localhost>
On Mon, Oct 22, 2018 at 03:48:02PM -0700, Richard Cochran wrote:
> On Fri, Oct 19, 2018 at 11:51:37AM +0200, Miroslav Lichvar wrote:
> > The extra timestamp doesn't fit the API of the PTP_SYS_OFFSET ioctl,
> > so it would need to shift the timestamp it returns by the missing
> > intervals (assuming the frequency offset between the PHC and system
> > clock is small), or a new ioctl could be introduced that would return
> > all timestamps in an array looking like this:
> >
> > [sys, phc, sys, sys, phc, sys, ...]
>
> How about a new ioctl with number of trials as input and single offset
> as output?
The difference between the system timestamps is important as it gives
an upper bound on the error in the offset, so I think the output
should be at least a pair of offset and delay.
The question is from which triplet should be the offset and delay
calculated. The one with the minimum delay is a good choice, but it's
not the only option. For instance, an average or median from all
triplets that have delay smaller than the minimum + 30 nanoseconds may
give a more stable offset.
This is not that different from an NTP client filtering measurements
made over network. I'm not sure if we should try to solve it in the
kernel or drivers. My preference would be to give the user space all
the data and process it there.
If the increased size of the array is an issue, we can reduce the
maximum number of readings.
Does that make sense?
--
Miroslav Lichvar
^ permalink raw reply
* [PATCH nf] netfilter: ipv6: fix oops when defragmenting locally generated fragments
From: Florian Westphal @ 2018-10-23 14:47 UTC (permalink / raw)
To: netfilter-devel
Cc: lorenzo, zenczykowski, edumazet, netdev, maze, Florian Westphal
In-Reply-To: <CANP3RGeX5=c=Lb+Pkg89zD7zQ_Z1T8oPJRCkorNCdghmofYXxg@mail.gmail.com>
Unlike ipv4 and normal ipv6 defrag, netfilter ipv6 defragmentation did
not save/restore skb->dst.
This causes oops when handling locally generated ipv6 fragments, as
output path needs a valid dst.
Reported-by: Maciej Żenczykowski <zenczykowski@gmail.com>
Fixes: 84379c9afe01 ("netfilter: ipv6: nf_defrag: drop skb dst before queueing")
Signed-off-by: Florian Westphal <fw@strlen.de>
---
net/ipv6/netfilter/nf_conntrack_reasm.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
index 8f68a518d9db..f76bd4d15704 100644
--- a/net/ipv6/netfilter/nf_conntrack_reasm.c
+++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
@@ -587,11 +587,16 @@ int nf_ct_frag6_gather(struct net *net, struct sk_buff *skb, u32 user)
*/
ret = -EINPROGRESS;
if (fq->q.flags == (INET_FRAG_FIRST_IN | INET_FRAG_LAST_IN) &&
- fq->q.meat == fq->q.len &&
- nf_ct_frag6_reasm(fq, skb, dev))
- ret = 0;
- else
+ fq->q.meat == fq->q.len) {
+ unsigned long orefdst = skb->_skb_refdst;
+
+ skb->_skb_refdst = 0UL;
+ if (nf_ct_frag6_reasm(fq, skb, dev))
+ ret = 0;
+ skb->_skb_refdst = orefdst;
+ } else {
skb_dst_drop(skb);
+ }
out_unlock:
spin_unlock_bh(&fq->q.lock);
--
2.18.1
^ permalink raw reply related
* Re: [PATCH nf] netfilter: ipv6: fix oops when defragmenting locally generated fragments
From: Eric Dumazet @ 2018-10-23 14:54 UTC (permalink / raw)
To: Florian Westphal
Cc: netfilter-devel, Lorenzo Colitti, zenczykowski, netdev,
Maciej Żenczykowski
In-Reply-To: <20181023144716.19746-1-fw@strlen.de>
On Tue, Oct 23, 2018 at 7:48 AM Florian Westphal <fw@strlen.de> wrote:
>
> Unlike ipv4 and normal ipv6 defrag, netfilter ipv6 defragmentation did
> not save/restore skb->dst.
>
> This causes oops when handling locally generated ipv6 fragments, as
> output path needs a valid dst.
>
> Reported-by: Maciej Żenczykowski <zenczykowski@gmail.com>
> Fixes: 84379c9afe01 ("netfilter: ipv6: nf_defrag: drop skb dst before queueing")
> Signed-off-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Eric Dumazet <edumazet@google.com>
^ permalink raw reply
* [PATCH net 1/1] qed: Fix static checker warning
From: Rahul Verma @ 2018-10-23 15:04 UTC (permalink / raw)
To: davem; +Cc: netdev, Ariel.Elior, Dept-EngEverestLinuxL2, Rahul Verma
From: Rahul Verma <Rahul.Verma@cavium.com>
Static Checker Warnings:
drivers/net/ethernet/qlogic/qed/qed_main.c:1510 qed_fill_link_capability()
error: uninitialized symbol 'tcvr_state'.
drivers/net/ethernet/qlogic/qed/qed_mcp.c:1951 qed_mcp_trans_speed_mask()
error: uninitialized symbol 'transceiver_state'.
drivers/net/ethernet/qlogic/qed/qed_mcp.c:1951 qed_mcp_trans_speed_mask()
error: uninitialized symbol 'transceiver_type'.
Symbols tcvr_state, transceiver_state and transceiver_type
are initialized with respective default state.
Fixes: c56a8be7e7aa (qed: Add supported link and advertise link to display in ethtool.)
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Rahul Verma <Rahul.Verma@cavium.com>
---
drivers/net/ethernet/qlogic/qed/qed_mcp.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
index 386ee54..f40f654 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
@@ -1900,6 +1900,9 @@ int qed_mcp_get_transceiver_data(struct qed_hwfn *p_hwfn,
{
u32 transceiver_info;
+ *p_transceiver_type = ETH_TRANSCEIVER_TYPE_NONE;
+ *p_transceiver_state = ETH_TRANSCEIVER_STATE_UPDATING;
+
if (IS_VF(p_hwfn->cdev))
return -EINVAL;
@@ -1908,9 +1911,6 @@ int qed_mcp_get_transceiver_data(struct qed_hwfn *p_hwfn,
return -EBUSY;
}
- *p_transceiver_type = ETH_TRANSCEIVER_TYPE_NONE;
- *p_transceiver_state = ETH_TRANSCEIVER_STATE_UPDATING;
-
transceiver_info = qed_rd(p_hwfn, p_ptt,
p_hwfn->mcp_info->port_addr +
offsetof(struct public_port,
--
1.8.3.1
^ permalink raw reply related
* Re: [PATCH] bonding:avoid repeated display of same link status change
From: Mahesh Bandewar (महेश बंडेवार) @ 2018-10-23 15:54 UTC (permalink / raw)
To: mk.singh
Cc: linux-netdev, Jay Vosburgh, Veaceslav Falico, Andy Gospodarek,
David S. Miller, linux-kernel
In-Reply-To: <20181023152924.24033-1-mk.singh@oracle.com>
On Tue, Oct 23, 2018 at 8:29 AM, <mk.singh@oracle.com> wrote:
> From: Manish Kumar Singh <mk.singh@oracle.com>
>
> When link status change needs to be committed and rtnl lock couldn't be
> taken, avoid redisplay of same link status change message.
>
> Signed-off-by: Manish Kumar Singh <mk.singh@oracle.com>
> ---
> drivers/net/bonding/bond_main.c | 6 ++++--
> include/net/bonding.h | 1 +
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 2b01180be834..af9ef889a429 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -2096,7 +2096,7 @@ static int bond_miimon_inspect(struct bonding *bond)
> bond_propose_link_state(slave, BOND_LINK_FAIL);
> commit++;
> slave->delay = bond->params.downdelay;
> - if (slave->delay) {
> + if (slave->delay && !atomic_read(&bond->rtnl_needed)) {
Atomic operations are expensive (on certain architectures) and miimon
runs quite frequently. Is the added cost of these atomic operations
even worth just to avoid *duplicate info* messages? This seems like a
overkill!
> netdev_info(bond->dev, "link status down for %sinterface %s, disabling it in %d ms\n",
> (BOND_MODE(bond) ==
> BOND_MODE_ACTIVEBACKUP) ?
> @@ -2136,7 +2136,7 @@ static int bond_miimon_inspect(struct bonding *bond)
> commit++;
> slave->delay = bond->params.updelay;
>
> - if (slave->delay) {
> + if (slave->delay && !atomic_read(&bond->rtnl_needed)) {
> netdev_info(bond->dev, "link status up for interface %s, enabling it in %d ms\n",
> slave->dev->name,
> ignore_updelay ? 0 :
> @@ -2310,9 +2310,11 @@ static void bond_mii_monitor(struct work_struct *work)
> if (!rtnl_trylock()) {
> delay = 1;
> should_notify_peers = false;
> + atomic_set(&bond->rtnl_needed, 1);
> goto re_arm;
> }
>
> + atomic_set(&bond->rtnl_needed, 0);
> bond_for_each_slave(bond, slave, iter) {
> bond_commit_link_state(slave, BOND_SLAVE_NOTIFY_LATER);
> }
> diff --git a/include/net/bonding.h b/include/net/bonding.h
> index a4f116f06c50..a4353506bb4f 100644
> --- a/include/net/bonding.h
> +++ b/include/net/bonding.h
> @@ -229,6 +229,7 @@ struct bonding {
> struct dentry *debug_dir;
> #endif /* CONFIG_DEBUG_FS */
> struct rtnl_link_stats64 bond_stats;
> + atomic_t rtnl_needed;
> };
>
> #define bond_slave_get_rcu(dev) \
> --
> 2.14.1
>
^ permalink raw reply
* Re: [PATCH v2] rtlwifi: remove set but not used variable 'radiob_array_table' and 'radiob_arraylen'
From: Pkshih @ 2018-10-24 0:52 UTC (permalink / raw)
To: joe@perches.com, zhongjiang@huawei.com, kvalo@codeaurora.org
Cc: linux-wireless@vger.kernel.org, davem@davemloft.net,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org
In-Reply-To: <19b16ca89b5cde607338513638d4ef8e3a3d2802.camel@perches.com>
On Tue, 2018-10-23 at 12:33 -0700, Joe Perches wrote:
> On Tue, 2018-10-23 at 16:28 +0800, zhong jiang wrote:
> > radiob_array_table' and 'radiob_arraylen' are not used after setting its
> value.
> > It is safe to remove the unused variable. Meanwhile, radio B radio should be
> > removed as well. because it will no longer be referenced.
>
> The patch subject is a bit off and too generic here.
>
> This is specific to rtl8723ae and not rtlwifi so it is
> probably better for the subject to be something like:
>
> [PATCH] rtl8723ae: Remove set but not used variables and #defines
I'd like 'rtlwifi: rtl8723ae: ' as subject prefix.
>
> > Signed-off-by: zhong jiang <zhongjiang@huawei.com>
> > ---
> > drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c | 5 +----
> > drivers/net/wireless/realtek/rtlwifi/rtl8723ae/table.c | 4 ----
> > drivers/net/wireless/realtek/rtlwifi/rtl8723ae/table.h | 2 --
>
>
> ------Please consider the environment before printing this e-mail.
^ permalink raw reply
* Re: Improving accuracy of PHC readings
From: Miroslav Lichvar @ 2018-10-23 16:48 UTC (permalink / raw)
To: Keller, Jacob E; +Cc: netdev@vger.kernel.org, Richard Cochran
In-Reply-To: <02874ECE860811409154E81DA85FBB5884CDD9F4@ORSMSX115.amr.corp.intel.com>
On Fri, Oct 19, 2018 at 04:52:13PM +0000, Keller, Jacob E wrote:
> > This should significantly improve the accuracy of the synchronization,
> > reduce the uncertainty in the readings to less than a half or third,
> > and also reduce the jitter as there are fewer register reads sensitive
> > to the PCIe delay.
> >
> > What do you think?
> >
>
> Nice! I think this is good. I'd love to see some data to back it up, but it makes sense to me.
I tried a quick hack with an X550 and I219. The delay dropped from
about 2940 ns to 1040 ns on the first port of the X550, from 1920 ns
to 660 ns on the second port of the X550, and from 2500 ns to 1300 ns
on the I219.
The I219 supports the SYS_OFFSET_PRECISE ioctl (cross timestamping),
which we can use for comparison. The difference between the offsets
calculated using the two ioctls was about 500-600 ns before and now it
is about -50--150 ns.
I was not able to find any information on how accurate cross
timestamping on this HW is actually supposed to be, so I'm wondering
which of the two is closer to the truth.
Here is an output from phc2sys with the I219:
Before:
phc offset -59 s2 freq +40 delay 2527
phc offset 19 s2 freq +101 delay 2526
phc offset -23 s2 freq +64 delay 2522
phc offset 46 s2 freq +126 delay 2535
phc offset -32 s2 freq +62 delay 2530
phc offset -10 s2 freq +75 delay 2526
phc offset 102 s2 freq +184 delay 2523
After:
phc offset 17 s2 freq +105 delay 1298
phc offset 47 s2 freq +140 delay 1299
phc offset -42 s2 freq +65 delay 1293
phc offset -6 s2 freq +88 delay 1299
phc offset 34 s2 freq +127 delay 1300
phc offset -14 s2 freq +89 delay 1301
phc offset -86 s2 freq +13 delay 1296
phc offset -21 s2 freq +52 delay 1298
--
Miroslav Lichvar
^ permalink raw reply
* ethernet "bus" number in DTS ?
From: Joakim Tjernlund @ 2018-10-23 16:49 UTC (permalink / raw)
To: linuxppc-dev@lists.ozlabs.org, netdev@vger.kernel.org
SPI (and others) has a way to define bus number in a aliases:
aliases {
ethernet4 = &enet4;
ethernet0 = &enet0;
ethernet1 = &enet1;
ethernet2 = &enet2;
ethernet3 = &enet3;
spi0 = &spi0
};
The 0 in the spi0 alias will translate to bus num 0 so one can control the /dev nodes, like /dev/spidev0
I am looking for the same for ethernet devices:
ethernet4 = &enet4; /* should become eth4 */
ethernet0 = &enet0; /* should become eth0 */
but I cannot find something like that for eth devices.
Could such functionality be added?
Jocke
^ permalink raw reply
* Re: ethernet "bus" number in DTS ?
From: Florian Fainelli @ 2018-10-23 17:03 UTC (permalink / raw)
To: Joakim Tjernlund, linuxppc-dev@lists.ozlabs.org,
netdev@vger.kernel.org
Cc: andrew
In-Reply-To: <88328977dfeaf667a98d791074b721fe730d285b.camel@infinera.com>
On 10/23/18 9:49 AM, Joakim Tjernlund wrote:
> SPI (and others) has a way to define bus number in a aliases:
> aliases {
> ethernet4 = &enet4;
> ethernet0 = &enet0;
> ethernet1 = &enet1;
> ethernet2 = &enet2;
> ethernet3 = &enet3;
> spi0 = &spi0
> };
> The 0 in the spi0 alias will translate to bus num 0 so one can control the /dev nodes, like /dev/spidev0
> I am looking for the same for ethernet devices:
> ethernet4 = &enet4; /* should become eth4 */
> ethernet0 = &enet0; /* should become eth0 */
> but I cannot find something like that for eth devices.
>
> Could such functionality be added?
It could, do we want and need to, no. You have the Ethernet alias in
/sys/class/net/*/device/uevent already that would allow you to perform
that (re)naming in user-space:
# cat /sys/class/net/eth0/device/uevent
DRIVER=bcmgenet
OF_NAME=ethernet
OF_FULLNAME=/rdb/ethernet@f0480000
OF_TYPE=network
OF_COMPATIBLE_0=brcm,genet-v5
OF_COMPATIBLE_N=1
OF_ALIAS_0=eth0 <==================
MODALIAS=of:NethernetTnetworkCbrcm,genet-v5
--
Florian
^ permalink raw reply
* Re: ethernet "bus" number in DTS ?
From: Andrew Lunn @ 2018-10-23 17:08 UTC (permalink / raw)
To: Joakim Tjernlund; +Cc: linuxppc-dev@lists.ozlabs.org, netdev@vger.kernel.org
In-Reply-To: <88328977dfeaf667a98d791074b721fe730d285b.camel@infinera.com>
On Tue, Oct 23, 2018 at 04:49:59PM +0000, Joakim Tjernlund wrote:
> SPI (and others) has a way to define bus number in a aliases:
> aliases {
> ethernet4 = &enet4;
> ethernet0 = &enet0;
> ethernet1 = &enet1;
> ethernet2 = &enet2;
> ethernet3 = &enet3;
> spi0 = &spi0
> };
> The 0 in the spi0 alias will translate to bus num 0 so one can control the /dev nodes, like /dev/spidev0
> I am looking for the same for ethernet devices:
> ethernet4 = &enet4; /* should become eth4 */
> ethernet0 = &enet0; /* should become eth0 */
> but I cannot find something like that for eth devices.
>
> Could such functionality be added?
Hi Jocke
This has been discussed before. Take a look at
arch/arm/boot/dts/armada-38x.dtsi
/*
* As a special exception to the "order by
* register address" rule, the eth0 node is
* placed here to ensure that it gets
* registered as the first interface, since
* the network subsystem doesn't allow naming
* interfaces using DT aliases. Without this,
* the ordering of interfaces is different
* from the one used in U-Boot and the
* labeling of interfaces on the boards, which
* is very confusing for users.
*/
You should be able to find the discuss about this, and why aliases
cannot be used.
Andrew
^ permalink raw reply
* Re: [iproute PATCH v2] tc: htb: Print default value in hex
From: Stephen Hemminger @ 2018-10-23 17:09 UTC (permalink / raw)
To: Phil Sutter; +Cc: netdev
In-Reply-To: <20181023103624.6263-1-phil@nwl.cc>
On Tue, 23 Oct 2018 12:36:24 +0200
Phil Sutter <phil@nwl.cc> wrote:
> Value of 'default' is assumed to be hexadecimal when parsing, so
> consequently it should be printed in hex as well. This is a regression
> introduced when adding JSON output.
>
> As requested, also change JSON output to print the value as hex string.
>
> Fixes: f354fa6aa5ff0 ("tc: jsonify htb qdisc")
> Signed-off-by: Phil Sutter <phil@nwl.cc>
Thanks, applied.
^ permalink raw reply
* Re: [PATCH v2] rtlwifi: remove set but not used variable 'radiob_array_table' and 'radiob_arraylen'
From: zhong jiang @ 2018-10-24 2:04 UTC (permalink / raw)
To: Pkshih, joe@perches.com
Cc: kvalo@codeaurora.org, linux-wireless@vger.kernel.org,
davem@davemloft.net, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
In-Reply-To: <1540342331.2495.1.camel@realtek.com>
On 2018/10/24 8:52, Pkshih wrote:
> On Tue, 2018-10-23 at 12:33 -0700, Joe Perches wrote:
>> On Tue, 2018-10-23 at 16:28 +0800, zhong jiang wrote:
>>> radiob_array_table' and 'radiob_arraylen' are not used after setting its
>> value.
>>> It is safe to remove the unused variable. Meanwhile, radio B radio should be
>>> removed as well. because it will no longer be referenced.
>> The patch subject is a bit off and too generic here.
>>
>> This is specific to rtl8723ae and not rtlwifi so it is
>> probably better for the subject to be something like:
>>
>> [PATCH] rtl8723ae: Remove set but not used variables and #defines
> I'd like 'rtlwifi: rtl8723ae: ' as subject prefix.
Thanks for your suggestion. Will change the subject and resend.
[PATCH] rtlwifi: rtl8723ae: Remove set but not used variables and #defines
Thanks,
zhong jiang
>>> Signed-off-by: zhong jiang <zhongjiang@huawei.com>
>>> ---
>>> drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c | 5 +----
>>> drivers/net/wireless/realtek/rtlwifi/rtl8723ae/table.c | 4 ----
>>> drivers/net/wireless/realtek/rtlwifi/rtl8723ae/table.h | 2 --
>>
>> ------Please consider the environment before printing this e-mail.
^ permalink raw reply
* [ANNOUNCE] iproute2 4.19
From: Stephen Hemminger @ 2018-10-23 17:49 UTC (permalink / raw)
To: netdev; +Cc: linux-kernel
Release of iproute2 for Linux 4.19
Lastest version iproute2 utility to support new features in Linux 4.19
such as CAKE qdisc. In addition to the usual manual page fixes and
other cleanups.
The tarball can be downloaded from:
https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.19.0.tar.xz
The upstream repositories for master and net-next branch are now
split. Master branch is at:
git://git.kernel.org/pub/scm/network/iproute2/iproute2.git
and patches for next release are in (master branch):
git://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git
Report problems (or enhancements) to the netdev@vger.kernel.org mailing list.
---
Alex Vesker (1):
devlink: Add support for devlink-region access
Caleb Raitto (2):
man: Change numtc to num_tc
tc/mqprio: Print extra info on invalid args.
Cong Wang (1):
ss: add UNIX_DIAG_VFS and UNIX_DIAG_ICONS for unix sockets
Daniel Borkmann (4):
bpf: move bpf_elf_map fixup notification under verbose
bpf: remove strict dependency on af_alg
bpf: implement bpf to bpf calls support
bpf: implement btf handling and map annotation
David Ahern (6):
Update kernel headers
Update kernel headers
Import btf.h from kernel headers
Update kernel headers
Update kernel headers
Update kernel headers
Eran Ben Elisha (1):
ip: Add violation counters to VF statisctics
Florent Fourcot (1):
tc/htb: remove unused variable
Guillaume Nault (3):
l2tp: drop data_seq
l2tp: drop mtu
l2tp: drop lns_mode
Hangbin Liu (3):
bridge/mdb: fix missing new line when show bridge mdb
iplink: fix incorrect any address handling for ip tunnels
vxlan: show correct ttl inherit info
Hoang Le (2):
tipc: JSON support for showing nametable
tipc: JSON support for tipc link printouts
Jakub Kicinski (2):
iplink: add support for reporting multiple XDP programs
tc: jsonify output of q_fifo
Jesus Sanchez-Palencia (1):
man: Add initial manpage for tc-etf(8)
Jianbo Liu (1):
tc: flower: Add support for QinQ
Jiri Pirko (1):
tc: introduce support for chain templates
Keara Leibovitz (2):
tc: jsonify nat action
tc: fix bugs for tcp_flags and ip_attr hex output
Leon Romanovsky (1):
rdma: Fix representation of PortInfo CapabilityMask
Lorenzo Bianconi (3):
iplink_vxlan: take into account preferred_family creating vxlan device
uapi: add snmp header file
utils: fix get_rtnl_link_stats_rta stats parsing
Luca Boccassi (3):
testsuite: remove all temp files and implement make clean
testsuite: let make compile build the netlink helper
testsuite: run dmesg with sudo
Mahesh Bandewar (2):
ipmaddr: use preferred_family when given
iproute: make clang happy
Moshe Shemesh (1):
devlink: Add param command support
Nikolay Aleksandrov (1):
bridge: add support for isolated option
Nishanth Devarajan (1):
Add SKB Priority qdisc support in tc(8)
Or Gerlitz (2):
tc/act_tunnel_key: Enable setup of tos and ttl
tc/flower: Add match on encapsulating tos/ttl
Petr Vorel (5):
testsuite: Fix missing generate_nlmsg
testsuite: Generate generate_nlmsg when needed
testsuite: Warn about empty $(IPVERS)
Makefile: Add check target
testsuite: Fix make check when need build generate_nlmsg
Phil Sutter (30):
tc: Fix typo in check for colored output
bridge: Fix check for colored output
Merge common code for conditionally colored output
man: ip-route: Clarify referenced versions are Linux ones
ss: Review ssfilter
testsuite: Prepare for ss tests
testsuite: Add a first ss test validating ssfilter
man: bridge.8: Document -oneline option
bridge: trivial: Make help text consistent
devlink: trivial: Make help text consistent
man: devlink.8: Document -verbose option
genl: Fix help text
man: ifstat.8: Document --json and --pretty options
man: rtacct.8: Fix nstat options
rtmon: List options in help text
man: ss.8: Describe --events option
ip: Add missing -M flag to help text
Make colored output configurable
lib: Make check_enable_color() return boolean
ip-route: Fix segfault with many nexthops
bridge: fdb: Fix for missing keywords in non-JSON output
ip-addrlabel: Fix printing of label value
devlink: Fix error reporting in cmd_resource_set()
rdma: Fix for ineffective check in add_filter()
ip-route: Fix for memleak in error path
rdma: Don't pass garbage to rd_check_is_filtered()
ip-route: Fix parse_encap_seg6() srh parsing
tipc: Drop unused variable 'genl'
tc: Remove pointless assignments in batch()
tc: htb: Print default value in hex
Qiaobin Fu (1):
net:sched: add action inheritdsfield to skbedit
Roopa Prabhu (1):
ipneigh: exclude NTF_EXT_LEARNED from default filter
Sabrina Dubroca (2):
json: make 0xhex handle u64
macsec: fix off-by-one when parsing attributes
Simon Horman (1):
tc: m_tunnel_key: Add tunnel option support to act_tunnel_key
Stefan Bader (2):
testsuite: Handle large number of kernel options
iprule: Fix destination prefix output
Stephen Hemminger (30):
ip: show min and max mtu
ip: show min and max mtu
ip: convert monitor to switch
ipmonitor: decode DELNETCONF message
genl: code cleanup
ip: drop extern from function prototype
bridge: drop extern from function prototypes
genl: drop extern from function prototypes
tc: drop extern from function prototypes
uapi: update bpf headers
uapi: update ib_verbs
bridge: minor change to mdb print
bridge: use print_json for some outputs
bridge: fix vlan show formatting
tc/fifo: remove unnecessary prototype
genl: remove unnecessary extern
lib: introduce print_nl
libnetlink: fix leak and using unused memory on error
Makefile: add help target
testsuite: add libmnl
libnetlink: don't return error on success
libnetlink: use local variable
doc/man: spelling fixes
examples: fix spelling errors
config: spelling fixes
tc: spelling fixes
ip: spelling fixes
tipc: spelling fix
util: spelling fix
v4.19.0
Subash Abhinov Kasiviswanathan (1):
ip-xfrm: Add support for OUTPUT_MARK
Toke Høiland-Jørgensen (6):
Add support for CAKE qdisc
q_cake: Rename autorate_ingress parameter to use dash as word separator
sch_cake: Make gso-splitting configurable
q_cake: Add description of the tc filter override mechanism to man page
q_cake: Add printing of no-split-gso option
q_cake: Also print nonat, nowash and no-ack-filter keywords
Vinicius Costa Gomes (1):
tc: Add support for the ETF Qdisc
Vlad Buslov (1):
libnetlink: fix use-after-free of message buf
^ permalink raw reply
* Re: [PATCH v3 1/4] net: emac: implement 802.1Q VLAN TX tagging support
From: David Miller @ 2018-10-23 17:54 UTC (permalink / raw)
To: chunkeey; +Cc: netdev
In-Reply-To: <f4acff06dde1a69a3c3f4fdd27014de3a3bd51cb.1540289031.git.chunkeey@gmail.com>
Sorry, net-next is closed.
Please resubmit this when net-next opens back up.
Thank you.
^ permalink raw reply
* Re: [PATCHv3 iproute2-next] ip/geneve: fix ttl inherit behavior
From: David Ahern @ 2018-10-23 17:54 UTC (permalink / raw)
To: Hangbin Liu, netdev; +Cc: Stephen Hemminger, Phil Sutter, Michal Kubecek
In-Reply-To: <1540194378-27331-1-git-send-email-liuhangbin@gmail.com>
On 10/22/18 1:46 AM, Hangbin Liu wrote:
> Currently when we add geneve with "ttl inherit", we only set ttl to 0, which
> is actually use whatever default value instead of inherit the inner protocol's
> ttl value.
>
> To make a difference with ttl inherit and ttl == 0, we add an attribute
> IFLA_GENEVE_TTL_INHERIT in kernel commit 52d0d404d39dd ("geneve: add ttl
> inherit support"). Now let's use "ttl inherit" to inherit the inner
> protocol's ttl, and use "ttl auto" to means "use whatever default value",
> the same behavior with ttl == 0.
>
> v2:
> 1) remove IFLA_GENEVE_TTL_INHERIT defination in if_link.h as it's already
> updated.
> 2) Still use addattr8() so we can enable/disable ttl inherit, as Michal
> suggested.
>
> v3: Update man page
>
> Reported-by: Jianlin Shi <jishi@redhat.com>
> Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
> ---
> ip/iplink_geneve.c | 20 +++++++++++++-------
> man/man8/ip-link.8.in | 4 +++-
> 2 files changed, 16 insertions(+), 8 deletions(-)
>
applied to iproute2-next. Thanks
^ permalink raw reply
* Re: [PATCH net v2 0/3] Bugfix for the netsec driver
From: David Miller @ 2018-10-23 17:55 UTC (permalink / raw)
To: masahisa.kojima
Cc: netdev, ilias.apalodimas, jaswinder.singh, ard.biesheuvel,
osaki.yoshitoyo
In-Reply-To: <20181023112428.6785-1-masahisa.kojima@linaro.org>
From: masahisa.kojima@linaro.org
Date: Tue, 23 Oct 2018 20:24:25 +0900
> From: Masahisa Kojima <masahisa.kojima@linaro.org>
>
> This patch series include bugfix for the netsec ethernet
> controller driver, fix the problem in interface down/up.
>
> changes in v2:
> - change the place to perform the PHY power down
> - use the MACROs defiend in include/uapi/linux/mii.h
> - update commit comment
Series applied.
^ permalink raw reply
* Re: [PATCH] net/wan/fsl_ucc_hdlc: add BQL support
From: David Miller @ 2018-10-23 17:56 UTC (permalink / raw)
To: mathias.thore
Cc: qiang.zhao, linuxppc-dev, netdev, joakim.tjernlund,
david.gounaris
In-Reply-To: <20181023114832.31350-1-mathias.thore@infinera.com>
From: Mathias Thore <mathias.thore@infinera.com>
Date: Tue, 23 Oct 2018 13:48:32 +0200
> Add byte queue limits support in the fsl_ucc_hdlc driver.
>
> Signed-off-by: Mathias Thore <mathias.thore@infinera.com>
> ---
>
> Note that this patch is created relative to another patch that was
> applied recently: net/wan/fsl_ucc_hdlc: error counters
net-next is closed, please resubmit this when net-next opens back up.
Thank you.
^ permalink raw reply
* Re: [PATCH net] Revert "net: simplify sock_poll_wait"
From: David Miller @ 2018-10-23 17:57 UTC (permalink / raw)
To: kgraul; +Cc: netdev, eric.dumazet, hch, linux-s390
In-Reply-To: <20181023114039.56959-1-kgraul@linux.ibm.com>
From: Karsten Graul <kgraul@linux.ibm.com>
Date: Tue, 23 Oct 2018 13:40:39 +0200
> This reverts commit dd979b4df817e9976f18fb6f9d134d6bc4a3c317.
>
> This broke tcp_poll for SMC fallback: An AF_SMC socket establishes an
> internal TCP socket for the initial handshake with the remote peer.
> Whenever the SMC connection can not be established this TCP socket is
> used as a fallback. All socket operations on the SMC socket are then
> forwarded to the TCP socket. In case of poll, the file->private_data
> pointer references the SMC socket because the TCP socket has no file
> assigned. This causes tcp_poll to wait on the wrong socket.
>
> Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Applied and queued up for -stable, thank you.
^ permalink raw reply
* Re: [PATCH net 1/1] net/smc: save link group ptr before calling smc_buf_unuse
From: David Miller @ 2018-10-23 18:00 UTC (permalink / raw)
To: ubraun; +Cc: netdev, linux-s390, schwidefsky, heiko.carstens, raspl
In-Reply-To: <20181023134805.2429-1-ubraun@linux.ibm.com>
From: Ursula Braun <ubraun@linux.ibm.com>
Date: Tue, 23 Oct 2018 15:48:05 +0200
> @@ -315,6 +314,8 @@ static void smc_buf_unuse(struct smc_connection *conn)
> /* remove a finished connection from its link group */
> void smc_conn_free(struct smc_connection *conn)
> {
> + struct smc_link_group *lgr;
> +
> if (!conn->lgr)
> return;
> if (conn->lgr->is_smcd) {
> @@ -323,8 +324,9 @@ void smc_conn_free(struct smc_connection *conn)
> } else {
> smc_cdc_tx_dismiss_slots(conn);
> }
> + lgr = conn->lgr; /* smc_lgr_unregister_conn() unsets lgr */
> smc_lgr_unregister_conn(conn);
> - smc_buf_unuse(conn);
> + smc_buf_unuse(conn, lgr);
> }
This doesn't make any sense.
smc_lgr_unregister_conn() can free the memory and release the object,
albeit sometimes asynchronously via a workqueue.
It is not safe, therefore, to refrence the lgr object after that
function call.
I'm not applying this, sorry.
^ permalink raw reply
* Re: Kernel oops with mlx5 and dual XDP redirect programs
From: Saeed Mahameed @ 2018-10-23 18:01 UTC (permalink / raw)
To: toke@toke.dk, netdev@vger.kernel.org
Cc: Eran Ben Elisha, Tariq Toukan, brouer@redhat.com
In-Reply-To: <8736sxgei1.fsf@toke.dk>
On Tue, 2018-10-23 at 12:10 +0200, Toke Høiland-Jørgensen wrote:
> Saeed Mahameed <saeedm@mellanox.com> writes:
>
> > On Thu, 2018-10-18 at 23:53 +0200, Toke Høiland-Jørgensen wrote:
> > > Saeed Mahameed <saeedm@mellanox.com> writes:
> > >
> > > > I think that the mlx5 driver doesn't know how to tell the other
> > > > device
> > > > to stop transmitting to it while it is resetting.. Maybe tariq
> > > > or
> > > > Jesper know more about this ?
> > > > I will look at this tomorrow after noon and will try to
> > > > repro...
> > >
> > > Hi Saeed
> > >
> > > Did you have a chance to poke at this? :)
> >
> > HI Toke, yes i have been planing to respond but also i wanted to
> > dig
> > more,
> >
> > so the root cause is very clear.
> >
> > 1. core 1 is doing tx_dev->ndo_xdp_xmit()
> > 2. core 2 is doing tx_dev->xdp_set() //remove xdp program.
>
> Right, it was also my guess that it was related to this interaction.
> Thanks for looking into it!
>
> > and the problem is beyond mlx5, since we don't have a way to tell a
> > different core/different netdev to stop xmitting, or at least
> > synchronize with it.
>
> Hmm, ideally there should be some way for the higher level XDP API to
> notice this and abort the call before it even reaches the driver on
> the
> TX side, shouldn't there? At LPC, Jesper and I will be talking about
> a
> proposal for decoupling the ndo_xdp_xmit() resource allocation from
> loading and unloading XDP programs, which I guess could be a way to
> deal
> with this as well.
>
> In the meantime...
>
Yes totally agree, this is why my fix is temporary.
Good Idea about LPC, let's discuss this there.
> > I will be waiting for your confirmation that the fix did work.
>
> I tested your patch, and it does indeed fix the crash. However, it
> also
> seems to have the effect that the XDP redirect continues to function
> even after removing the XDP program on the target device.
>
> I.e., after the call to ./xdp_fwd -d $TX_IF, I still see packets
> being
> redirected out $TX_IF. Is this intentional?
>
Interesting, shouldn't happen, unless there is something weird going on
when running xpd_fwd -d together with xdp_redirect_map, i just checked
the code and if ndo_xdp_set was called with null program we will remove
xdp tx resources, nothing suspicious in the driver.
I will look at this later this week.
> -Toke
^ permalink raw reply
* Re: ethernet "bus" number in DTS ?
From: Joakim Tjernlund @ 2018-10-23 18:02 UTC (permalink / raw)
To: linuxppc-dev@lists.ozlabs.org, netdev@vger.kernel.org,
f.fainelli@gmail.com
Cc: andrew@lunn.ch
In-Reply-To: <518e0cf1-ef7e-b251-a153-34e01a80267d@gmail.com>
On Tue, 2018-10-23 at 10:03 -0700, Florian Fainelli wrote:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
>
> On 10/23/18 9:49 AM, Joakim Tjernlund wrote:
> > SPI (and others) has a way to define bus number in a aliases:
> > aliases {
> > ethernet4 = &enet4;
> > ethernet0 = &enet0;
> > ethernet1 = &enet1;
> > ethernet2 = &enet2;
> > ethernet3 = &enet3;
> > spi0 = &spi0
> > };
> > The 0 in the spi0 alias will translate to bus num 0 so one can control the /dev nodes, like /dev/spidev0
> > I am looking for the same for ethernet devices:
> > ethernet4 = &enet4; /* should become eth4 */
> > ethernet0 = &enet0; /* should become eth0 */
> > but I cannot find something like that for eth devices.
> >
> > Could such functionality be added?
>
> It could, do we want and need to, no. You have the Ethernet alias in
> /sys/class/net/*/device/uevent already that would allow you to perform
> that (re)naming in user-space:
>
> # cat /sys/class/net/eth0/device/uevent
> DRIVER=bcmgenet
> OF_NAME=ethernet
> OF_FULLNAME=/rdb/ethernet@f0480000
> OF_TYPE=network
> OF_COMPATIBLE_0=brcm,genet-v5
> OF_COMPATIBLE_N=1
> OF_ALIAS_0=eth0 <==================
> MODALIAS=of:NethernetTnetworkCbrcm,genet-v5
Yes, one can if one uses udev and can find something to identify the hw I/F with, my
cat /sys/class/net/eth0/device/uevent looks like:
DRIVER=fsl_dpa
MODALIAS=platform:dpaa-ethernet
not sure mdev supports this, does it?
Our simple installer FS(initramfs) doesn't have either udev or mdev.
I also noted that using status = "disabled" didn't work either to create a fix name scheme.
Even worse, all the eth I/F after gets renumbered. It seems to me there
is value in having stability in eth I/F naming at boot.
Then userspace(udev) can rename if need be.
Sure would like to known more about why this feature is not wanted ?
I found
https://patchwork.kernel.org/patch/4122441/
You quote policy as reason but surely it must be better to
have something stable, connected to the hardware name, than semirandom naming?
Jocke
^ permalink raw reply
* Re: [PATCH] Revert "be2net: remove desc field from be_eq_obj"
From: David Miller @ 2018-10-23 18:03 UTC (permalink / raw)
To: ivecera
Cc: netdev, sathya.perla, ajit.khaparde, sriharsha.basavapatna,
somnath.kotur, linux-kernel
In-Reply-To: <20181023144026.26180-1-ivecera@redhat.com>
From: Ivan Vecera <ivecera@redhat.com>
Date: Tue, 23 Oct 2018 16:40:26 +0200
> The mentioned commit needs to be reverted because we cannot pass
> string allocated on stack to request_irq(). This function stores
> uses this pointer for later use (e.g. /proc/interrupts) so we need
> to keep this string persistently.
>
> Fixes: d6d9704af8f4 ("be2net: remove desc field from be_eq_obj")
>
> Signed-off-by: Ivan Vecera <ivecera@redhat.com>
Please do not put empty lines between Fixes and the other tags,
all tags should appear together as one contiguous group.
Fixed and applied and queued up for -stable.
^ permalink raw reply
* Re: [PATCH net 1/1] qed: Fix static checker warning
From: David Miller @ 2018-10-23 18:05 UTC (permalink / raw)
To: rahul.verma; +Cc: netdev, Ariel.Elior, Dept-EngEverestLinuxL2
In-Reply-To: <20181023150424.6046-1-rahul.verma@cavium.com>
From: Rahul Verma <rahul.verma@cavium.com>
Date: Tue, 23 Oct 2018 08:04:24 -0700
> From: Rahul Verma <Rahul.Verma@cavium.com>
>
> Static Checker Warnings:
> drivers/net/ethernet/qlogic/qed/qed_main.c:1510 qed_fill_link_capability()
> error: uninitialized symbol 'tcvr_state'.
> drivers/net/ethernet/qlogic/qed/qed_mcp.c:1951 qed_mcp_trans_speed_mask()
> error: uninitialized symbol 'transceiver_state'.
> drivers/net/ethernet/qlogic/qed/qed_mcp.c:1951 qed_mcp_trans_speed_mask()
> error: uninitialized symbol 'transceiver_type'.
>
> Symbols tcvr_state, transceiver_state and transceiver_type
> are initialized with respective default state.
>
> Fixes: c56a8be7e7aa (qed: Add supported link and advertise link to display in ethtool.)
Referenced commits shall be of the form:
SHA1_ID ("Commit header text.")
Meaning that text must be contained inside of parenthesis and also double quotes.
Please do not forget the double quotes in the future.
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Rahul Verma <Rahul.Verma@cavium.com>
Fixed, and applied.
Thanks.
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox