[PATCH v2 2.6.38-rc8-tip 17/20] 17: uprobes: filter chain

Stephen Wilson wilsons@start.ca
Tue Mar 15 19:51:00 GMT 2011




On Mon, Mar 14, 2011 at 07:07:22PM +0530, Srikar Dronamraju wrote:
> 
> Loops through the filters callbacks of currently registered
> consumers to see if any consumer is interested in tracing this task.

Should this be part of the series?  It is not currently used.

>  /* Acquires uprobe->consumer_rwsem */
> +static bool filter_chain(struct uprobe *uprobe, struct task_struct *t)
> +{
> +	struct uprobe_consumer *consumer;
> +	bool ret = false;
> +
> +	down_read(&uprobe->consumer_rwsem);
> +	for (consumer = uprobe->consumers; consumer;
> +					consumer = consumer->next) {
> +		if (!consumer->filter || consumer->filter(consumer, t)) {

The implementation does not seem to match the changelog description.
Should this not be:

                if (consumer->filter && consumer->filter(consumer, t))

  ?

> +			ret = true;
> +			break;
> +		}
> +	}
> +	up_read(&uprobe->consumer_rwsem);
> +	return ret;
> +}
> +

-- 
steve



More information about the Systemtap mailing list