diff options
| -rw-r--r-- | drivers/iommu/amd_iommu.c | 6 | ||||
| -rw-r--r-- | include/linux/iommu.h | 42 |
2 files changed, 28 insertions, 20 deletions
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index b64502dfa9f4..e89daf1b21b4 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c | |||
| @@ -266,7 +266,7 @@ static void swap_pci_ref(struct pci_dev **from, struct pci_dev *to) | |||
| 266 | 266 | ||
| 267 | static int iommu_init_device(struct device *dev) | 267 | static int iommu_init_device(struct device *dev) |
| 268 | { | 268 | { |
| 269 | struct pci_dev *dma_pdev, *pdev = to_pci_dev(dev); | 269 | struct pci_dev *dma_pdev = NULL, *pdev = to_pci_dev(dev); |
| 270 | struct iommu_dev_data *dev_data; | 270 | struct iommu_dev_data *dev_data; |
| 271 | struct iommu_group *group; | 271 | struct iommu_group *group; |
| 272 | u16 alias; | 272 | u16 alias; |
| @@ -293,7 +293,9 @@ static int iommu_init_device(struct device *dev) | |||
| 293 | dev_data->alias_data = alias_data; | 293 | dev_data->alias_data = alias_data; |
| 294 | 294 | ||
| 295 | dma_pdev = pci_get_bus_and_slot(alias >> 8, alias & 0xff); | 295 | dma_pdev = pci_get_bus_and_slot(alias >> 8, alias & 0xff); |
| 296 | } else | 296 | } |
| 297 | |||
| 298 | if (dma_pdev == NULL) | ||
| 297 | dma_pdev = pci_dev_get(pdev); | 299 | dma_pdev = pci_dev_get(pdev); |
| 298 | 300 | ||
| 299 | /* Account for quirked devices */ | 301 | /* Account for quirked devices */ |
diff --git a/include/linux/iommu.h b/include/linux/iommu.h index 7e83370e6fd2..f3b99e1c1042 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h | |||
| @@ -256,72 +256,78 @@ static inline void iommu_set_fault_handler(struct iommu_domain *domain, | |||
| 256 | { | 256 | { |
| 257 | } | 257 | } |
| 258 | 258 | ||
| 259 | int iommu_attach_group(struct iommu_domain *domain, struct iommu_group *group) | 259 | static inline int iommu_attach_group(struct iommu_domain *domain, |
| 260 | struct iommu_group *group) | ||
| 260 | { | 261 | { |
| 261 | return -ENODEV; | 262 | return -ENODEV; |
| 262 | } | 263 | } |
| 263 | 264 | ||
| 264 | void iommu_detach_group(struct iommu_domain *domain, struct iommu_group *group) | 265 | static inline void iommu_detach_group(struct iommu_domain *domain, |
| 266 | struct iommu_group *group) | ||
| 265 | { | 267 | { |
| 266 | } | 268 | } |
| 267 | 269 | ||
| 268 | struct iommu_group *iommu_group_alloc(void) | 270 | static inline struct iommu_group *iommu_group_alloc(void) |
| 269 | { | 271 | { |
| 270 | return ERR_PTR(-ENODEV); | 272 | return ERR_PTR(-ENODEV); |
| 271 | } | 273 | } |
| 272 | 274 | ||
| 273 | void *iommu_group_get_iommudata(struct iommu_group *group) | 275 | static inline void *iommu_group_get_iommudata(struct iommu_group *group) |
| 274 | { | 276 | { |
| 275 | return NULL; | 277 | return NULL; |
| 276 | } | 278 | } |
| 277 | 279 | ||
| 278 | void iommu_group_set_iommudata(struct iommu_group *group, void *iommu_data, | 280 | static inline void iommu_group_set_iommudata(struct iommu_group *group, |
| 279 | void (*release)(void *iommu_data)) | 281 | void *iommu_data, |
| 282 | void (*release)(void *iommu_data)) | ||
| 280 | { | 283 | { |
| 281 | } | 284 | } |
| 282 | 285 | ||
| 283 | int iommu_group_set_name(struct iommu_group *group, const char *name) | 286 | static inline int iommu_group_set_name(struct iommu_group *group, |
| 287 | const char *name) | ||
| 284 | { | 288 | { |
| 285 | return -ENODEV; | 289 | return -ENODEV; |
| 286 | } | 290 | } |
| 287 | 291 | ||
| 288 | int iommu_group_add_device(struct iommu_group *group, struct device *dev) | 292 | static inline int iommu_group_add_device(struct iommu_group *group, |
| 293 | struct device *dev) | ||
| 289 | { | 294 | { |
| 290 | return -ENODEV; | 295 | return -ENODEV; |
| 291 | } | 296 | } |
| 292 | 297 | ||
| 293 | void iommu_group_remove_device(struct device *dev) | 298 | static inline void iommu_group_remove_device(struct device *dev) |
| 294 | { | 299 | { |
| 295 | } | 300 | } |
| 296 | 301 | ||
| 297 | int iommu_group_for_each_dev(struct iommu_group *group, void *data, | 302 | static inline int iommu_group_for_each_dev(struct iommu_group *group, |
| 298 | int (*fn)(struct device *, void *)) | 303 | void *data, |
| 304 | int (*fn)(struct device *, void *)) | ||
| 299 | { | 305 | { |
| 300 | return -ENODEV; | 306 | return -ENODEV; |
| 301 | } | 307 | } |
| 302 | 308 | ||
| 303 | struct iommu_group *iommu_group_get(struct device *dev) | 309 | static inline struct iommu_group *iommu_group_get(struct device *dev) |
| 304 | { | 310 | { |
| 305 | return NULL; | 311 | return NULL; |
| 306 | } | 312 | } |
| 307 | 313 | ||
| 308 | void iommu_group_put(struct iommu_group *group) | 314 | static inline void iommu_group_put(struct iommu_group *group) |
| 309 | { | 315 | { |
| 310 | } | 316 | } |
| 311 | 317 | ||
| 312 | int iommu_group_register_notifier(struct iommu_group *group, | 318 | static inline int iommu_group_register_notifier(struct iommu_group *group, |
| 313 | struct notifier_block *nb) | 319 | struct notifier_block *nb) |
| 314 | { | 320 | { |
| 315 | return -ENODEV; | 321 | return -ENODEV; |
| 316 | } | 322 | } |
| 317 | 323 | ||
| 318 | int iommu_group_unregister_notifier(struct iommu_group *group, | 324 | static inline int iommu_group_unregister_notifier(struct iommu_group *group, |
| 319 | struct notifier_block *nb) | 325 | struct notifier_block *nb) |
| 320 | { | 326 | { |
| 321 | return 0; | 327 | return 0; |
| 322 | } | 328 | } |
| 323 | 329 | ||
| 324 | int iommu_group_id(struct iommu_group *group) | 330 | static inline int iommu_group_id(struct iommu_group *group) |
| 325 | { | 331 | { |
| 326 | return -ENODEV; | 332 | return -ENODEV; |
| 327 | } | 333 | } |
