Date: Sat, 17 Jun 2017 22:31:27 -0700 From: Kevin Oberman <rkoberman@gmail.com> To: Jia-Ju Bai <baijiaju1990@163.com> Cc: freebsd-drivers@freebsd.org, "freebsd-net@freebsd.org" <freebsd-net@freebsd.org> Subject: Re: [Bug 220032] [if_alc] sys/dev/alc/if_alc.c: sleep-under-mutex bugs Message-ID: <CAN6yY1uQxR3HTLYzy3uOwpcbLFGAKtCBxRU1HPAb8jjGVC9Hkg@mail.gmail.com> In-Reply-To: <7cc5abf5-f90c-c554-e54e-6f9534ef22ef@163.com> References: <7cc5abf5-f90c-c554-e54e-6f9534ef22ef@163.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jun 16, 2017 at 2:03 AM, Jia-Ju Bai <baijiaju1990@163.com> wrote: > The alc driver may sleep under a mutex, and the function call paths in file > "sys/dev/alc/if_alc.c" in FreeBSD 11.0 is: > alc_resume [line 2648: acquire the mutex] > alc_init_locked [line 2664] > alc_init_rx_ring [line 3911] > alc_newbuf [line 4469] > bus_dmamap_load_mbuf_sg(BUS_DMA_WAITOK) [line 3472] --> may sleep > > alc_int_task [line 3330: acquire the mutex] > alc_start_locked [line 3372] > alc_encap [line 2942] > bus_dmamap_load_mbuf_sg(BUS_DMA_WAITOK) [line 2780] --> may sleep > > The possible fix of these bugs is to set the last parameter in > bus_dmamap_load_mbuf_sg to "BUS_DMA_NOWAIT". > > This bug is found by a static analysis tool written by myself, and it is > checked by my review of the FreeBSD code. > > By the way, I am a freshman in developing FreeBSD drivers, and I am > willing to > submit a patch. But I do not know how to write and submit a patch, and > where to > submit, so I am looking forward to useful advice :) > > Jia-Ju Bai > To submit a patch, use svn to download the source from a repository. Be sure the file in your source directory is the current, unmodified file. Edit the file or files as needed to correct the bug Generate the diff with the command "svn diff path-to-directory-containing-file(s) > diff-file.diff" Update the bug report attaching the patch (with a brief description) -- Kevin Oberman, Part time kid herder and retired Network Engineer E-mail: rkoberman@gmail.com PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAN6yY1uQxR3HTLYzy3uOwpcbLFGAKtCBxRU1HPAb8jjGVC9Hkg>