CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's regmap subsystem, specifically in the handling of the optional `readable_reg` callback for devices using the SDW MBQ (SoundWire Multi-Bit Queue) interface. If this callback is unset, it can lead to a NULL pointer dereference during polling operations, potentially causing a kernel crash or denial of service. Organizations using affected Linux kernel versions, particularly those deploying sound devices like es9356 and tac5xx2-sdw, should prioritize addressing this issue to maintain system stability and reliability.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: regmap: sdw-mbq: don't call an unset readable_reg callback regmap_sdw_mbq_poll_busy() decides whether to poll the Function Busy bit by calling ctx->readable_reg(), which is a straight copy of config->readable_reg. That callback is optional: regmap_readable() treats a NULL ->readable_reg as "every register is readable", and drivers rely on that. es9356 and tac5xx2-sdw both build an MBQ regmap without one. Since commit ca1b11b36d82 ("regmap: sdw-mbq: Allow defers on undeferrable controls") the poll runs on every -ENODATA, not only for Controls the driver marked deferrable, so any of those devices answering COMMAND_IGNORED takes the kernel through a NULL function pointer. Treat a missing callback the way the rest of regmap does and poll.