lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <54791f7d5e4211b03a53e890a5d8a678039bec6d.camel@microchip.com>
Date:   Mon, 13 Feb 2023 16:32:21 +0100
From:   Steen Hegelund <steen.hegelund@...rochip.com>
To:     Dan Carpenter <error27@...il.com>
CC:     "David S . Miller" <davem@...emloft.net>,
        Eric Dumazet <edumazet@...gle.com>,
        Jakub Kicinski <kuba@...nel.org>,
        Paolo Abeni <pabeni@...hat.com>,
        <UNGLinuxDriver@...rochip.com>,
        Randy Dunlap <rdunlap@...radead.org>,
        Casper Andersson <casper.casan@...il.com>,
        "Russell King" <rmk+kernel@...linux.org.uk>,
        Wan Jiabing <wanjiabing@...o.com>,
        "Nathan Huckleberry" <nhuck@...gle.com>,
        <linux-kernel@...r.kernel.org>, <netdev@...r.kernel.org>,
        <linux-arm-kernel@...ts.infradead.org>,
        "Daniel Machon" <daniel.machon@...rochip.com>,
        Horatiu Vultur <horatiu.vultur@...rochip.com>,
        Lars Povlsen <lars.povlsen@...rochip.com>,
        Michael Walle <michael@...le.cc>
Subject: Re: [PATCH net-next 02/10] net: microchip: sparx5: Clear rule
 counter even if lookup is disabled

Hi Dan,

On Mon, 2023-02-13 at 18:06 +0300, Dan Carpenter wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
> 
> On Mon, Feb 13, 2023 at 01:44:35PM +0100, Steen Hegelund wrote:
> > > > diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > > b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > > index b2753aac8ad2..0a1d4d740567 100644
> > > > --- a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > > +++ b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > > @@ -1337,8 +1337,8 @@ static void vcap_api_encode_rule_test(struct kunit
> > > > *test)
> > > >       u32 port_mask_rng_mask = 0x0f;
> > > >       u32 igr_port_mask_value = 0xffabcd01;
> > > >       u32 igr_port_mask_mask = ~0;
> > > > -     /* counter is written as the last operation */
> > > > -     u32 expwriteaddr[] = {792, 793, 794, 795, 796, 797, 792};
> > > > +     /* counter is written as the first operation */
> > > > +     u32 expwriteaddr[] = {792, 792, 793, 794, 795, 796, 797};
> > > 
> > > So this moves 792 from the last to the first.  I would have expected
> > > that that would mean that we had to do something like this as well:
> > > 
> > > diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > index b2753aac8ad2..4d36fad0acab 100644
> > > --- a/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > +++ b/drivers/net/ethernet/microchip/vcap/vcap_api_kunit.c
> > > @@ -1400,7 +1400,7 @@ static void vcap_api_encode_rule_test(struct kunit
> > > *test)
> > >         /* Add rule with write callback */
> > >         ret = vcap_add_rule(rule);
> > >         KUNIT_EXPECT_EQ(test, 0, ret);
> > > -       KUNIT_EXPECT_EQ(test, 792, is2_admin.last_used_addr);
> > > +       KUNIT_EXPECT_EQ(test, 797, is2_admin.last_used_addr);
> > >         for (idx = 0; idx < ARRAY_SIZE(expwriteaddr); ++idx)
> > >                 KUNIT_EXPECT_EQ(test, expwriteaddr[idx],
> > > test_updateaddr[idx]);
> > > 
> > > 
> > > But I couldn't really figure out how the .last_used_addr stuff works.
> > > And presumably fixing this unit test is the point of the patch...
> > 
> > It is just the array of addresses written to in the order that they are
> > written,
> > so for the visibility I would like to keep it as an array.
> > 
> 
> My question was likely noise to begin with, but it's not clear that I
> phrased it well.  I'm asking that since 797 is now the last element in
> the array, I expected that the KUNIT_EXPECT_EQ() test for last_used_addr
> would have to be changed to 797 as well.

There are two writes to the 792 address as the counter recides with the start of
the rule (the lowest address of the rule).  Instead of being written after the
rule, it is now being written before the rule, so the test array that records
the order of the write operations gets changed.

The is2_admin.last_used_addr on the other hand records the "low water mark" of
used addresses in the VCAP instance, so it does not change as the rule size is
the same.

> 
> regards,
> dan carpenter
> 

BR
Steen

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ