Hi Jensen, kernel test robot noticed the following build warnings: [auto build test WARNING on rockchip/for-next] [also build test WARNING on linus/master v6.7-rc4 next-20231206] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Jensen-Huang/i2c-rk3x-fix-potential-spinlock-recursion-on-poll/20231206-170807 base: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next patch link: https://lore.kernel.org/r/20231206090641.18849-1-jensenhuang%40friendlyarm.com patch subject: [PATCH] i2c: rk3x: fix potential spinlock recursion on poll config: arc-randconfig-r081-20231206 (https://download.01.org/0day-ci/archive/20231207/202312070421.Lccd0PSI-lkp@xxxxxxxxx/config) compiler: arc-elf-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231207/202312070421.Lccd0PSI-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202312070421.Lccd0PSI-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> drivers/i2c/busses/i2c-rk3x.c:223: warning: Function parameter or member 'irq' not described in 'rk3x_i2c' vim +223 drivers/i2c/busses/i2c-rk3x.c c41aa3ce938b68 Max Schwarz 2014-06-11 171 0a6ad2f95f36bf David Wu 2016-05-16 172 /** 0a6ad2f95f36bf David Wu 2016-05-16 173 * struct rk3x_i2c - private data of the controller 0a6ad2f95f36bf David Wu 2016-05-16 174 * @adap: corresponding I2C adapter 0a6ad2f95f36bf David Wu 2016-05-16 175 * @dev: device for this controller 0a6ad2f95f36bf David Wu 2016-05-16 176 * @soc_data: related soc data struct 0a6ad2f95f36bf David Wu 2016-05-16 177 * @regs: virtual memory area 7e086c3fc2df09 David Wu 2016-05-16 178 * @clk: function clk for rk3399 or function & Bus clks for others 7e086c3fc2df09 David Wu 2016-05-16 179 * @pclk: Bus clk for rk3399 0a6ad2f95f36bf David Wu 2016-05-16 180 * @clk_rate_nb: i2c clk rate change notify 0a6ad2f95f36bf David Wu 2016-05-16 181 * @t: I2C known timing information 0a6ad2f95f36bf David Wu 2016-05-16 182 * @lock: spinlock for the i2c bus 0a6ad2f95f36bf David Wu 2016-05-16 183 * @wait: the waitqueue to wait for i2c transfer 0a6ad2f95f36bf David Wu 2016-05-16 184 * @busy: the condition for the event to wait for 0a6ad2f95f36bf David Wu 2016-05-16 185 * @msg: current i2c message 0a6ad2f95f36bf David Wu 2016-05-16 186 * @addr: addr of i2c slave device 0a6ad2f95f36bf David Wu 2016-05-16 187 * @mode: mode of i2c transfer 0a6ad2f95f36bf David Wu 2016-05-16 188 * @is_last_msg: flag determines whether it is the last msg in this transfer 0a6ad2f95f36bf David Wu 2016-05-16 189 * @state: state of i2c transfer 0a6ad2f95f36bf David Wu 2016-05-16 190 * @processed: byte length which has been send or received 0a6ad2f95f36bf David Wu 2016-05-16 191 * @error: error code for i2c transfer 0a6ad2f95f36bf David Wu 2016-05-16 192 */ c41aa3ce938b68 Max Schwarz 2014-06-11 193 struct rk3x_i2c { c41aa3ce938b68 Max Schwarz 2014-06-11 194 struct i2c_adapter adap; c41aa3ce938b68 Max Schwarz 2014-06-11 195 struct device *dev; d032a2eb2e3b9f Julia Lawall 2018-01-02 196 const struct rk3x_i2c_soc_data *soc_data; c41aa3ce938b68 Max Schwarz 2014-06-11 197 c41aa3ce938b68 Max Schwarz 2014-06-11 198 /* Hardware resources */ c41aa3ce938b68 Max Schwarz 2014-06-11 199 void __iomem *regs; c41aa3ce938b68 Max Schwarz 2014-06-11 200 struct clk *clk; 7e086c3fc2df09 David Wu 2016-05-16 201 struct clk *pclk; 249051f49907e7 Max Schwarz 2014-11-20 202 struct notifier_block clk_rate_nb; 58bb392dd4c7fc Jensen Huang 2023-12-06 203 int irq; c41aa3ce938b68 Max Schwarz 2014-06-11 204 c41aa3ce938b68 Max Schwarz 2014-06-11 205 /* Settings */ 1ab92956d4aac5 David Wu 2016-03-17 206 struct i2c_timings t; c41aa3ce938b68 Max Schwarz 2014-06-11 207 c41aa3ce938b68 Max Schwarz 2014-06-11 208 /* Synchronization & notification */ c41aa3ce938b68 Max Schwarz 2014-06-11 209 spinlock_t lock; c41aa3ce938b68 Max Schwarz 2014-06-11 210 wait_queue_head_t wait; c41aa3ce938b68 Max Schwarz 2014-06-11 211 bool busy; c41aa3ce938b68 Max Schwarz 2014-06-11 212 c41aa3ce938b68 Max Schwarz 2014-06-11 213 /* Current message */ c41aa3ce938b68 Max Schwarz 2014-06-11 214 struct i2c_msg *msg; c41aa3ce938b68 Max Schwarz 2014-06-11 215 u8 addr; c41aa3ce938b68 Max Schwarz 2014-06-11 216 unsigned int mode; c41aa3ce938b68 Max Schwarz 2014-06-11 217 bool is_last_msg; c41aa3ce938b68 Max Schwarz 2014-06-11 218 c41aa3ce938b68 Max Schwarz 2014-06-11 219 /* I2C state machine */ c41aa3ce938b68 Max Schwarz 2014-06-11 220 enum rk3x_i2c_state state; 0a6ad2f95f36bf David Wu 2016-05-16 221 unsigned int processed; c41aa3ce938b68 Max Schwarz 2014-06-11 222 int error; c41aa3ce938b68 Max Schwarz 2014-06-11 @223 }; c41aa3ce938b68 Max Schwarz 2014-06-11 224 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki