Date: Thu, 20 Oct 2022 10:37:18 -0600 From: Alan Somers <asomers@freebsd.org> To: Ken Merry <ken@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 11778fca4a83 - main - Fix mpr(4) panic during a firmware update. Message-ID: <CAOtMX2hsKyV1_zvN4JUTk0o-d4Z_wQT7iNoysOUGCCpZ87vC0w@mail.gmail.com> In-Reply-To: <F4FC4172-7C8A-4F9D-A194-AEE1C7BD734A@freebsd.org> References: <202210171652.29HGqtSf007611@gitrepo.freebsd.org> <CAOtMX2jLP1icxmw-Q-wry01StSLFt6n7tOVJOJfeUDivS9aEEg@mail.gmail.com> <F4FC4172-7C8A-4F9D-A194-AEE1C7BD734A@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 20, 2022 at 10:29 AM Ken Merry <ken@freebsd.org> wrote: > > > On Oct 20, 2022, at 12:23, Alan Somers <asomers@freebsd.org> wrote: > > On Mon, Oct 17, 2022 at 10:53 AM Kenneth D. Merry <ken@freebsd.org> wrote= : > > > The branch main has been updated by ken: > > URL: https://cgit.FreeBSD.org/src/commit/?id=3D11778fca4a83f5e3b597c75785= aa5c0ee0dc518e > > commit 11778fca4a83f5e3b597c75785aa5c0ee0dc518e > Author: Kenneth D. Merry <ken@FreeBSD.org> > AuthorDate: 2022-10-17 16:48:34 +0000 > Commit: Kenneth D. Merry <ken@FreeBSD.org> > CommitDate: 2022-10-17 16:48:34 +0000 > > Fix mpr(4) panic during a firmware update. > > Issue Description: > The RequestCredits field of IOCFacts got changed between the Phase23 > firmware to Phase24 firmware. So as part of firmware update operation, > driver has to free the resources & pools which are created with the Ph= ase23 > Firmware's IOCFacts data (i.e. during driver load time) and has to > reallocate the resources and pools using Phase24's IOCFacts data. Here > driver has freed the interrupts but missed to reallocate the interrupt= s and > hence config page read operation is getting timed out and controller i= s > going for recursive reinit (controller reset) operations and leading t= o > kernel panic. > > Fix: > Reallocate the interrupts if the interrupts are disabled as part of > firmware update/downgrade operation. > > Submitted by: Sreekanth Ready <sreekanth.reddy@broadcom.com> > Tested by: ken > MFC after: 3 days > > > Would this commit fix the panic in bug 252575? > > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D252575 > > > Unfortunately, no. > > This is the panic I ran into on a firmware upgrade using storcli64 on a B= roadcom 9600-16i card going from Phase 23 to Phase 24: > > mpr0: Reinitializing controller > mpr0: Firmware: 24.00.00.00, Driver: 23.00.00.00-fbsd > mpr0: IOCCapabilities: 2fa84c<ScsiTaskFull,DiagTrace,EEDP,TransRetry,Even= tReplay > ,MSIXIndex,HostDisc,FastPath,RDPQArray,AtomicReqDesc> > mpr0: Calling Reinit from mpr_wait_command, timeout=3D30, elapsed=3D30 > mpr0: Reinitializing controller > mpr_config_get_ioc_pg8: request for header completed with error 0 > mpr_config_get_ioc_pg8: request for header completed with error 16 > mpr_config_get_ioc_pg8: request for header completed with error 16 > mpr_config_get_ioc_pg8: request for header completed with error 16 > mpr_config_get_ioc_pg8: request for header completed with error 16 > mpr_config_get_ioc_pg8: request for header completed with error 16 > mpr_config_get_iounit_pg8: request for header completed with error 16 > mpr_config_get_iounit_pg8: request for header completed with error 16 > mpr_config_get_iounit_pg8: request for header completed with error 16 > mpr_config_get_iounit_pg8: request for header completed with error 16 > mpr_config_get_iounit_pg8: request for header completed with error 16 > mpr_config_get_iounit_pg8: request for header completed with error 16 > mpr_config_get_man_pg11: request for header completed with error 16 > mpr_config_get_man_pg11: request for header completed with error 16 > mpr_config_get_man_pg11: request for header completed with error 16 > mpr_config_get_man_pg11: request for header completed with error 16 > mpr_config_get_man_pg11: request for header completed with error 16 > mpr_config_get_man_pg11: request for header completed with error 16 > mpr_config_get_dpm_pg0: request for header completed with error 16 > mpr_config_get_dpm_pg0: request for header completed with error 16 > mpr_config_get_dpm_pg0: request for header completed with error 16 > mpr_config_get_dpm_pg0: request for header completed with error 16 > mpr0: Unfreezing SIM queue > mpr0: fault_state(0x40001500)! > mpr0: Timeout while writing doorbell > panic: mpr_iocfacts_allocate failed to get IOC Facts with error 6 > > cpuid =3D 1 > time =3D 1663771142 > KDB: stack backtrace: > db_trace_self_wrapper() at 0xffffffff8040a9ab =3D db_trace_self_wrapper+0= x2b/frame 0xfffffe02e759d6c0 > vpanic() at 0xffffffff805f7ad1 =3D vpanic+0x151/frame 0xfffffe02e759d710 > panic() at 0xffffffff805f7973 =3D panic+0x43/frame 0xfffffe02e759d770 > mpr_iocfacts_allocate() at 0xffffffff8154bdad =3D mpr_iocfacts_allocate+0= x15dd/frame 0xfffffe02e759d8e0 > mpr_reinit() at 0xffffffff81549e0c =3D mpr_reinit+0x14c/frame 0xfffffe02e= 759d930 > mpr_wait_command() at 0xffffffff8154fb69 =3D mpr_wait_command+0x1d9/frame= 0xfffffe02e759d9b0 > mpr_ioctl() at 0xffffffff8155a113 =3D mpr_ioctl+0x1de3/frame 0xfffffe02e7= 59db40 > devfs_ioctl() at 0xffffffff804bab8f =3D devfs_ioctl+0xaf/frame 0xfffffe02= e759db90 > vn_ioctl() at 0xffffffff806e9664 =3D vn_ioctl+0x1a4/frame 0xfffffe02e759d= ca0 > devfs_ioctl_f() at 0xffffffff804bb21e =3D devfs_ioctl_f+0x1e/frame 0xffff= fe02e759dcc0 > kern_ioctl() at 0xffffffff80667b2d =3D kern_ioctl+0x26d/frame 0xfffffe02e= 759dd30 > sys_ioctl() at 0xffffffff80667811 =3D sys_ioctl+0x101/frame 0xfffffe02e75= 9de00 > amd64_syscall() at 0xffffffff8092ae4c =3D amd64_syscall+0x10c/frame 0xfff= ffe02e759df30 > fast_syscall_common() at 0xffffffff8090369b =3D fast_syscall_common+0xf8/= frame 0xfffffe02e759df30 > --- syscall (54, FreeBSD ELF64, sys_ioctl), rip =3D 0x8dfe3a, rsp =3D 0x8= 21837048, rbp =3D 0x4 --- > Uptime: 18h2m58s > Dumping 5338 out of 130903 MB:..1%..11%..21%..31%..41%..51%..61%..71%..81= %..91% > > Ken > =E2=80=94 > Ken Merry > ken@FreeBSD.ORG Ahh, too bad. Is Broadcom even aware of the other one?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2hsKyV1_zvN4JUTk0o-d4Z_wQT7iNoysOUGCCpZ87vC0w>