/* this is basically a dynamic stabbing problem: Could use the existing prio tree code or Possible better implementations: The Interval Skip List: A Data Structure for Finding All Intervals That Overlap a Point (might be simple) Space Efficient Dynamic Stabbing with Fast Queries - Mikkel Thorup  */
static struct kmmio_probe* get_kmmio_probe(unsigned long addr)
/* this is basically a dynamic stabbing problem: Could use the existing prio tree code or Possible better implementations: The Interval Skip List: A Data Structure for Finding All Intervals That Overlap a Point (might be simple) Space Efficient Dynamic Stabbing with Fast Queries - Mikkel Thorup  */
static struct kmmio_probe* get_kmmio_probe(unsigned long addr)
{
	struct kmmio_probe *p;
	list_for_each_entry_rcu(p, &kmmio_probes, list) {
		if (addr >= p->addr && addr < (p->addr + p->len))
			return p;
	}
	return NULL;
}