diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/amba/bus.h | 2 | ||||
| -rw-r--r-- | include/linux/mmzone.h | 26 |
2 files changed, 27 insertions, 1 deletions
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 51e6e54b2aa1..9b93cafa82a0 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
| @@ -28,7 +28,7 @@ struct amba_id { | |||
| 28 | 28 | ||
| 29 | struct amba_driver { | 29 | struct amba_driver { |
| 30 | struct device_driver drv; | 30 | struct device_driver drv; |
| 31 | int (*probe)(struct amba_device *, void *); | 31 | int (*probe)(struct amba_device *, struct amba_id *); |
| 32 | int (*remove)(struct amba_device *); | 32 | int (*remove)(struct amba_device *); |
| 33 | void (*shutdown)(struct amba_device *); | 33 | void (*shutdown)(struct amba_device *); |
| 34 | int (*suspend)(struct amba_device *, pm_message_t); | 34 | int (*suspend)(struct amba_device *, pm_message_t); |
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 186ec6ab334d..a47c879e1304 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h | |||
| @@ -1097,6 +1097,32 @@ unsigned long __init node_memmap_size_bytes(int, unsigned long, unsigned long); | |||
| 1097 | #define pfn_valid_within(pfn) (1) | 1097 | #define pfn_valid_within(pfn) (1) |
| 1098 | #endif | 1098 | #endif |
| 1099 | 1099 | ||
| 1100 | #ifdef CONFIG_ARCH_HAS_HOLES_MEMORYMODEL | ||
| 1101 | /* | ||
| 1102 | * pfn_valid() is meant to be able to tell if a given PFN has valid memmap | ||
| 1103 | * associated with it or not. In FLATMEM, it is expected that holes always | ||
| 1104 | * have valid memmap as long as there is valid PFNs either side of the hole. | ||
| 1105 | * In SPARSEMEM, it is assumed that a valid section has a memmap for the | ||
| 1106 | * entire section. | ||
| 1107 | * | ||
| 1108 | * However, an ARM, and maybe other embedded architectures in the future | ||
| 1109 | * free memmap backing holes to save memory on the assumption the memmap is | ||
| 1110 | * never used. The page_zone linkages are then broken even though pfn_valid() | ||
| 1111 | * returns true. A walker of the full memmap must then do this additional | ||
| 1112 | * check to ensure the memmap they are looking at is sane by making sure | ||
| 1113 | * the zone and PFN linkages are still valid. This is expensive, but walkers | ||
| 1114 | * of the full memmap are extremely rare. | ||
| 1115 | */ | ||
| 1116 | int memmap_valid_within(unsigned long pfn, | ||
| 1117 | struct page *page, struct zone *zone); | ||
| 1118 | #else | ||
| 1119 | static inline int memmap_valid_within(unsigned long pfn, | ||
| 1120 | struct page *page, struct zone *zone) | ||
| 1121 | { | ||
| 1122 | return 1; | ||
| 1123 | } | ||
| 1124 | #endif /* CONFIG_ARCH_HAS_HOLES_MEMORYMODEL */ | ||
| 1125 | |||
| 1100 | #endif /* !__GENERATING_BOUNDS.H */ | 1126 | #endif /* !__GENERATING_BOUNDS.H */ |
| 1101 | #endif /* !__ASSEMBLY__ */ | 1127 | #endif /* !__ASSEMBLY__ */ |
| 1102 | #endif /* _LINUX_MMZONE_H */ | 1128 | #endif /* _LINUX_MMZONE_H */ |
