On 11 April 2018 at 09:58, Daniel Mack <daniel@xxxxxxxxxx> wrote: > On Tuesday, April 10, 2018 08:17 PM, Ramon Fried wrote: >> On 10 April 2018 at 20:35, Daniel Mack <daniel@xxxxxxxxxx> wrote: >>> When accessing shared memory to check for the stat of submitted >>> descriptors, make sure to use READ_ONCE(). This will guarantee the >>> compiler treats these memory locations as volatile and doesn't apply >>> any caching. >> >> The structure that is tested is not shared memory. It's accessed only >> by the apps processor. > > Hmm? ctl->desc is of type struct wcn36xx_dxe_desc, which is packed and > shared with the firmware. The WCN36xx_DXE_CTRL_VLD bit in ctrl bitfield > is set by the firmware when a frame is valid, and before asserting the > RX interrupt. So the host CPU must treat it as volatile and expect it to > change. > > Am I reading this wrong? > No, you're right. I missed that. > > Thanks, > Daniel