diff options
| -rw-r--r-- | drivers/pci/iova.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/drivers/pci/iova.c b/drivers/pci/iova.c index 2287116e9822..46dd440e2315 100644 --- a/drivers/pci/iova.c +++ b/drivers/pci/iova.c | |||
| @@ -1,9 +1,19 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2006, Intel Corporation. | 2 | * Copyright © 2006-2009, Intel Corporation. |
| 3 | * | 3 | * |
| 4 | * This file is released under the GPLv2. | 4 | * This program is free software; you can redistribute it and/or modify it |
| 5 | * under the terms and conditions of the GNU General Public License, | ||
| 6 | * version 2, as published by the Free Software Foundation. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
| 9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
| 10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
| 11 | * more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License along with | ||
| 14 | * this program; if not, write to the Free Software Foundation, Inc., 59 Temple | ||
| 15 | * Place - Suite 330, Boston, MA 02111-1307 USA. | ||
| 5 | * | 16 | * |
| 6 | * Copyright (C) 2006-2008 Intel Corporation | ||
| 7 | * Author: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> | 17 | * Author: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> |
| 8 | */ | 18 | */ |
| 9 | 19 | ||
| @@ -123,7 +133,15 @@ move_left: | |||
| 123 | /* Insert the new_iova into domain rbtree by holding writer lock */ | 133 | /* Insert the new_iova into domain rbtree by holding writer lock */ |
| 124 | /* Add new node and rebalance tree. */ | 134 | /* Add new node and rebalance tree. */ |
| 125 | { | 135 | { |
| 126 | struct rb_node **entry = &((prev)), *parent = NULL; | 136 | struct rb_node **entry, *parent = NULL; |
| 137 | |||
| 138 | /* If we have 'prev', it's a valid place to start the | ||
| 139 | insertion. Otherwise, start from the root. */ | ||
| 140 | if (prev) | ||
| 141 | entry = &prev; | ||
| 142 | else | ||
| 143 | entry = &iovad->rbroot.rb_node; | ||
| 144 | |||
| 127 | /* Figure out where to put new node */ | 145 | /* Figure out where to put new node */ |
| 128 | while (*entry) { | 146 | while (*entry) { |
| 129 | struct iova *this = container_of(*entry, | 147 | struct iova *this = container_of(*entry, |
