I posted a general question a couple months back about this. Now that I have
an approach in place, I wanted to see if the approach is workable before I
spend a bunch of time trying to debug an approach that absolutely won't work
for some fundamental reason. I am not yet a kernel guru (don't know that I
want to be) but this "feature" seems to require intimate knowledge of the
inner workings of the kernel's memory management.
I'm attempting to set up a "hot patcher" in an embedded product. I'm
attempting to use shared memory, however the "target" process is not aware
of the patch being applied to it. Can a pseudo-driver attach a shared memory
segment to a process which can then be executable by that process via a jump
or jump-and-link, or is shared memory only for passing data and messages
between collaborating processes? The references I've read only indicate the
RW permissions, no X permissions. Or should I have the pseudo-driver
actually allocate (by get_free_pages()) the memory required? And can it do
this on behalf of the target process?
If neither of these look workable, I've been thinking about the concept of
using software interrupts. Any thoughts? Any constructive comments and/or
insights greatly appreciated.
++++++++++++++++++++++++++++++++++++++++++++++++++
Keith Siders
Software Engineer
Toshiba
Advanced Television Technology Center
++++++++++++++++++++++++++++++++++++++++++++++++++