Re: [smatch] sched_fair: check after dereference

From: Paul Turner
Date: Fri Dec 24 2010 - 04:18:41 EST


Sorry for delayed response -- was travelling, currently home for
holidays on terrible (satellite) internet.

On Mon, Dec 20, 2010 at 1:10 AM, Dan Carpenter <error27@xxxxxxxxx> wrote:
> Hi Paul,
>
> In linux-next e33078baa4 "sched: Fix update_cfs_load() synchronization"
> introduced a dereference before the check for NULL.  I don't know the
> code well enough to say if it's a bug or if the check can be removed.
>

This should be stale. Now that we issue versus the queuing cfs_rq as
opposed to the group cfs_rq the passed pointer should always be valid.

If you want to send a patch I'll ack it, otherwise I can send one out
in the morning.

Thanks!

- Paul

> kernel/sched_fair.c +728 update_cfs_load(6)
>        warn: variable dereferenced before check 'cfs_rq'
>
>   722  static void update_cfs_load(struct cfs_rq *cfs_rq, int global_update)
>   723  {
>   724          u64 period = sysctl_sched_shares_window;
>   725          u64 now, delta;
>   726          unsigned long load = cfs_rq->load.weight;
>                                     ^^^^^^^^^^^^^^^^^^^
>   727
>   728          if (!cfs_rq)
>                     ^^^^^^
>   729                  return;
>
> Can you take a look?
>
> regards,
> dan carpenter
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/