NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-amd64/54217: Biostar X370GT5 may fail to boot with SATA controller enabled



Will take in mind. Thanks for clarification.

On Mon, Jun 10, 2019 at 8:35 AM David Holland <dholland-bugs%netbsd.org@localhost> wrote:
>
> The following reply was made to PR port-amd64/54217; it has been noted by GNATS.
>
> From: David Holland <dholland-bugs%netbsd.org@localhost>
> To: gnats-bugs%netbsd.org@localhost
> Cc:
> Subject: Re: port-amd64/54217: Biostar X370GT5 may fail to boot with SATA
>  controller enabled
> Date: Mon, 10 Jun 2019 05:31:46 +0000
>
>  these weren't sent to gnats (send to gnats-bugs, not gnats-admin; you
>  often have to set this by hand if replying to your own PR or post)
>
>     ------
>
>  From: Andrius V <vezhlys%gmail.com@localhost>
>  To: port-amd64-maintainer%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
>         netbsd-bugs%netbsd.org@localhost
>  Subject: Re: port-amd64/54217: Biostar X370GT5 may fail to boot with SATA
>         controller enabled
>  Date: Thu, 23 May 2019 23:36:27 +0300
>
>  Not sure if it will help but file location got lost during copy paste
>  from the shell in the first line of the trace messages (everything
>  else is the same):
>
>  panic: kernel diagnostic assertion "mutex_owned(&chp->ch_lock)"
>  failed: file "/usr/src/sys/dev/ata/ata_subr.c", line 275
>
>
>  From: Andrius V <vezhlys%gmail.com@localhost>
>  To: port-amd64-maintainer%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
>         netbsd-bugs%netbsd.org@localhost
>  Subject: Re: port-amd64/54217: Biostar X370GT5 may fail to boot with SATA
>         controller enabled
>  Date: Fri, 24 May 2019 01:40:46 +0300
>
>  The issue seems to be "caused" by changes implemented for kern/49457
>  (starting this commit:
>  https://github.com/NetBSD/src/commit/4b35af44f7c014375586795a95e72b32833e5bf3
>  + two subsequent ones). The retry logic in wd_get_params tries to
>  reset the drive but it requires an ata channel lock which apparently
>  is not always available on boot. Adding a lock does help to avoid the
>  crash but second SATA drive is not detected properly in that case, so
>  I am not sure how it should be actually fixed:
>
>  autoconfiguration error: ahcisata0 port 5: clearing WDCTL_RST failed for drive 0
>  wd1: autoconfiguration error: IDENTIFY failed
>  wd1: fixing 0 sector size
>  wd1: secperunit and ncylinders are zero
>  wd1(ahcisata0:5:0): using PIO mode 0
>
>  Changes I did:
>  --- a/sys/dev/ata/wd.c
>  +++ b/sys/dev/ata/wd.c
>  @@ -1644,6 +1644,7 @@ int
>   wd_get_params(struct wd_softc *wd, uint8_t flags, struct ataparams *params)
>   {
>          int retry = 0;
>  +       struct ata_channel *chp;
>
>   again:
>          switch (wd->atabus->ata_get_params(wd->drvp, flags, params)) {
>  @@ -1652,7 +1653,10 @@ again:
>          case CMD_ERR:
>                  if (retry == 0) {
>                          retry++;
>  +                       chp = wd->drvp->chnl_softc;
>  +                       ata_channel_lock(chp);
>                          (*wd->atabus->ata_reset_drive)(wd->drvp, flags, NULL);
>  +                       ata_channel_unlock(chp);
>                          goto again;
>                  }
>


Home | Main Index | Thread Index | Old Index