qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Steven Lee <steven_lee@aspeedtech.com>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: Laurent Vivier <lvivier@redhat.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	Thomas Huth <thuth@redhat.com>,
	Jamin Lin <jamin_lin@aspeedtech.com>,
	Andrew Jeffery <andrew@aj.id.au>,
	Troy Lee <troy_lee@aspeedtech.com>,
	"open list:All patches CC here" <qemu-devel@nongnu.org>,
	"open list:ASPEED BMCs" <qemu-arm@nongnu.org>,
	Joel Stanley <joel@jms.id.au>,
	Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH v5 2/3] aspeed/hace: Support AST2600 HACE
Date: Tue, 26 Apr 2022 09:42:32 +0800	[thread overview]
Message-ID: <20220426014230.GA2615@aspeedtech.com> (raw)
In-Reply-To: <17d96382-de18-986e-877c-d87092c0816d@kaod.org>

The 04/25/2022 21:46, Cédric Le Goater wrote:
> On 4/22/22 07:19, Steven Lee wrote:
> > +/**
> > + * Check whether the request contains padding message.
> > + *
> > + * @param s             aspeed hace state object
> > + * @param iov           iov of current request
> > + * @param req_len       length of the current request
> > + * @param total_msg_len length of all acc_mode requests(excluding padding msg)
> > + * @param pad_offset    start offset of padding message
> > + */
> > +static bool has_padding(AspeedHACEState *s, struct iovec *iov,
> > +                        hwaddr req_len, uint32_t *total_msg_len,
> > +                        uint32_t *pad_offset)
> > +{
> > +    *total_msg_len = (uint32_t)(ldq_be_p(iov->iov_base + req_len - 8) / 8);
> > +    /*
> > +     * SG_LIST_LEN_LAST asserted in the request length doesn't mean it is the
> > +     * last request. The last request should contain padding message.
> > +     * We check whether message contains padding by
> > +     *   1. Get total message length. If the current message contains
> > +     *      padding, the last 8 bytes are total message length.
> > +     *   2. Check whether the total message length is valid.
> > +     *      If it is valid, the value should less than or equal to
> > +     *      total_req_len.
> > +     *   3. Current request len - padding_size to get padding offset.
> > +     *      The padding message's first byte should be 0x80
> > +     */
> > +    if (*total_msg_len <= s->total_req_len) {
> > +        uint32_t padding_size = s->total_req_len - *total_msg_len;
> > +        uint8_t *padding = iov->iov_base;
> > +        *pad_offset = req_len - padding_size;
> > +        if (padding[*pad_offset] == 0x80) {
> > +            return true;
> > +        }
> > +    }
> > +
> > +    return false;
> > +}
> > +
> > +static int reconstruct_iov(AspeedHACEState *s, struct iovec *iov, int id,
> > +                           uint32_t *pad_offset)
> > +{
> > +    int i, iov_count;
> > +    if (pad_offset != 0) {
> 
> pad_offset can not be NULL. or may be you meant *pad_offset ?
> 
> Thanks,
> 
> C.
> 
> 

Yes, it should be *pad_offset, I will fix it.

Thanks,
Steven

> > +        s->iov_cache[s->iov_count].iov_base = iov[id].iov_base;
> > +        s->iov_cache[s->iov_count].iov_len = *pad_offset;
> > +        ++s->iov_count;
> 
> 
> > +    }
> > +    for (i = 0; i < s->iov_count; i++) {
> > +        iov[i].iov_base = s->iov_cache[i].iov_base;
> > +        iov[i].iov_len = s->iov_cache[i].iov_len;
> > +    }
> > +    iov_count = s->iov_count;
> > +    s->iov_count = 0;
> > +    s->total_req_len = 0;
> > +    return iov_count;
> > +}
> > +
> 


  reply	other threads:[~2022-04-26  1:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-22  5:19 [PATCH v5 0/3] aspeed/hace: Support AST2600 HACE Steven Lee
2022-04-22  5:19 ` [PATCH v5 1/3] aspeed/hace: Support HMAC Key Buffer register Steven Lee
2022-04-22  5:19 ` [PATCH v5 2/3] aspeed/hace: Support AST2600 HACE Steven Lee
2022-04-25 13:46   ` Cédric Le Goater
2022-04-26  1:42     ` Steven Lee [this message]
2022-04-22  5:19 ` [PATCH v5 3/3] tests/qtest: Add test for Aspeed HACE accumulative mode Steven Lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220426014230.GA2615@aspeedtech.com \
    --to=steven_lee@aspeedtech.com \
    --cc=andrew@aj.id.au \
    --cc=clg@kaod.org \
    --cc=jamin_lin@aspeedtech.com \
    --cc=joel@jms.id.au \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-arm@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=troy_lee@aspeedtech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).