Messages in this thread Patch in this message | | | Date | Sat, 22 Apr 2006 08:03:32 -0700 | From | Daniel Walker <> | Subject | [PATCH -rt] scheduling while atomic in fs/file.c |
| |
In free_fdtable_rcu() it does the following,
} else { fddef = &get_cpu_var(fdtable_defer_list); spin_lock(&fddef->lock); ... spin_unlock(&fddef->lock); put_cpu_var(fdtable_defer_list); }
I've never seen a scheduling while atomic, but seems like it could happen . Not much contention on this lock though.
Signed-Off-By: Daniel Walker <dwalker@mvista.com>
Index: linux-2.6.16/fs/file.c =================================================================== --- linux-2.6.16.orig/fs/file.c +++ linux-2.6.16/fs/file.c @@ -137,7 +137,7 @@ static void free_fdtable_rcu(struct rcu_ kfree(fdt->fd); kfree(fdt); } else { - fddef = &get_cpu_var(fdtable_defer_list); + fddef = &__get_cpu_var(fdtable_defer_list); spin_lock(&fddef->lock); fdt->next = fddef->next; fddef->next = fdt; @@ -149,7 +149,6 @@ static void free_fdtable_rcu(struct rcu_ if (!schedule_work(&fddef->wq)) mod_timer(&fddef->timer, 5); spin_unlock(&fddef->lock); - put_cpu_var(fdtable_defer_list); } } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |