[PATCH 2.4] i2c cleanups

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Long story short, as I recall it.

For kernel 2.2 : MOD_INC/DEC_USE_COUNT and necessary callbacks in the
i2c structs. I _think_ there was some race condition of calling rmmod to
release the module and another process half-way to MOD_INC_COUNT.

For kernel 2.4 : Replace MOD_INC_COUNT with try_inc_mod_count(), this
may fail if the module in question is about to be removed from kernel.
The callback in i2c_adapter and i2c_driver is void (*inc_use)() so the
choice of exporting .owner=THIS_MODULE to i2c-core as was already
done in 2.5 tree seemed like the correct choice. This is the essential
question whether the cleanup is just an api change or a real bugfix.

A problem I see there is procfs allowing only one module reference per
opened file. In terms of i2c architecture, we need to hold both adapter
and driver modules in place. Currently neither is done and I think it
will oops if you enter a directory under /proc/sys/dev/sensors and rmmod
either of the two hw interface modules. The fill_inode from days of
2.2.x does not seem either.

For kernel 2.6: kobjects. This is the essentials of driver-model and
sysfs allowing a tree-like topology of devices and drivers. Reference a
device on the bus, and its driver and parent device are also referenced.
In turn, this would obsolete .owner if driver-model gets more thoroughly
implemented during 2.7 cycle. I have some compiling and running code for
that, will post for review on holidays.

Maybe someone can pop more details right off their stack.

-- 
  Ky?sti M?lkki  <kyosti.malkki at welho.com>



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux