On Thu, Apr 27, 2023 at 08:37:23AM +0900, YASUOKA Masahiko wrote:
> 
> Hello,
> 
> On Wed, 26 Apr 2023 16:32:28 +0900
> Yuichiro NAITO <naito.yuich...@gmail.com> wrote:
> > These 2 revisions of 'attr_val' and 'attr_thr' are different on this
> > disk.
> > The comment says that it's wrong vendor implementation but I can see
> > 'smartctl' shows the attributes as follows. NetBSD's atactl doesn't
> > see these 2 revisions are same but checks each checksum is valid.
> 
> The diff seems correct.
> 
> ok?

ok kevlo@

> > diff --git a/sbin/atactl/atactl.c b/sbin/atactl/atactl.c
> > index 85dfced8c9a..1f77460ce3d 100644
> > --- a/sbin/atactl/atactl.c
> > +++ b/sbin/atactl/atactl.c
> > @@ -1657,13 +1657,11 @@ device_attr(int argc, char *argv[])
> >     req.datalen = sizeof(attr_thr);
> >     ata_command(&req);
> > 
> > -   if (attr_val.revision != attr_thr.revision) {
> > -           /*
> > -            * Non standard vendor implementation.
> > -            * Return, since we don't know how to use this.
> > -            */
> > -           return;
> > -   }
> > +   if (smart_cksum((u_int8_t *)&attr_val, sizeof(attr_val)) != 0)
> > +           errx(1, "Checksum mismatch (attr_val)");
> > +
> > +   if (smart_cksum((u_int8_t *)&attr_thr, sizeof(attr_thr)) != 0)
> > +           errx(1, "Checksum mismatch (attr_thr)");
> > 
> >     attr = attr_val.attribute;
> >     thr = attr_thr.threshold;
> > 
> 

Reply via email to