Skip to content

Commit 4eed3dd

Browse files
ij-intelbjorn-helgaas
authored andcommitted
resource: Use typedef for alignf callback
To make it simpler to declare resource constraint alignf callbacks, add typedef for it and document it. Suggested-by: Andy Shevchenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Tested-by: Lidong Wang <[email protected]> Signed-off-by: Ilpo Järvinen <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Reviewed-by: Andy Shevchenko <[email protected]> Reviewed-by: Mika Westerberg <[email protected]>
1 parent f958625 commit 4eed3dd

File tree

4 files changed

+23
-22
lines changed

4 files changed

+23
-22
lines changed

drivers/pci/bus.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -176,10 +176,7 @@ static void pci_clip_resource_to_region(struct pci_bus *bus,
176176
static int pci_bus_alloc_from_region(struct pci_bus *bus, struct resource *res,
177177
resource_size_t size, resource_size_t align,
178178
resource_size_t min, unsigned long type_mask,
179-
resource_size_t (*alignf)(void *,
180-
const struct resource *,
181-
resource_size_t,
182-
resource_size_t),
179+
resource_alignf alignf,
183180
void *alignf_data,
184181
struct pci_bus_region *region)
185182
{
@@ -250,10 +247,7 @@ static int pci_bus_alloc_from_region(struct pci_bus *bus, struct resource *res,
250247
int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
251248
resource_size_t size, resource_size_t align,
252249
resource_size_t min, unsigned long type_mask,
253-
resource_size_t (*alignf)(void *,
254-
const struct resource *,
255-
resource_size_t,
256-
resource_size_t),
250+
resource_alignf alignf,
257251
void *alignf_data)
258252
{
259253
#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT

include/linux/ioport.h

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,23 @@ enum {
188188
#define DEFINE_RES_DMA(_dma) \
189189
DEFINE_RES_DMA_NAMED((_dma), NULL)
190190

191+
/**
192+
* typedef resource_alignf - Resource alignment callback
193+
* @data: Private data used by the callback
194+
* @res: Resource candidate range (an empty resource space)
195+
* @size: The minimum size of the empty space
196+
* @align: Alignment from the constraints
197+
*
198+
* Callback allows calculating resource placement and alignment beyond min,
199+
* max, and align fields in the struct resource_constraint.
200+
*
201+
* Return: Start address for the resource.
202+
*/
203+
typedef resource_size_t (*resource_alignf)(void *data,
204+
const struct resource *res,
205+
resource_size_t size,
206+
resource_size_t align);
207+
191208
/* PC/ISA/whatever - the normal PC address spaces: IO and memory */
192209
extern struct resource ioport_resource;
193210
extern struct resource iomem_resource;
@@ -207,10 +224,7 @@ extern void arch_remove_reservations(struct resource *avail);
207224
extern int allocate_resource(struct resource *root, struct resource *new,
208225
resource_size_t size, resource_size_t min,
209226
resource_size_t max, resource_size_t align,
210-
resource_size_t (*alignf)(void *,
211-
const struct resource *,
212-
resource_size_t,
213-
resource_size_t),
227+
resource_alignf alignf,
214228
void *alignf_data);
215229
struct resource *lookup_resource(struct resource *root, resource_size_t start);
216230
int adjust_resource(struct resource *res, resource_size_t start,

include/linux/pci.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1551,10 +1551,7 @@ int __must_check pci_bus_alloc_resource(struct pci_bus *bus,
15511551
struct resource *res, resource_size_t size,
15521552
resource_size_t align, resource_size_t min,
15531553
unsigned long type_mask,
1554-
resource_size_t (*alignf)(void *,
1555-
const struct resource *,
1556-
resource_size_t,
1557-
resource_size_t),
1554+
resource_alignf alignf,
15581555
void *alignf_data);
15591556

15601557

kernel/resource.c

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@ EXPORT_SYMBOL(iomem_resource);
6363
*/
6464
struct resource_constraint {
6565
resource_size_t min, max, align;
66-
resource_size_t (*alignf)(void *, const struct resource *,
67-
resource_size_t, resource_size_t);
66+
resource_alignf alignf;
6867
void *alignf_data;
6968
};
7069

@@ -783,10 +782,7 @@ static int reallocate_resource(struct resource *root, struct resource *old,
783782
int allocate_resource(struct resource *root, struct resource *new,
784783
resource_size_t size, resource_size_t min,
785784
resource_size_t max, resource_size_t align,
786-
resource_size_t (*alignf)(void *,
787-
const struct resource *,
788-
resource_size_t,
789-
resource_size_t),
785+
resource_alignf alignf,
790786
void *alignf_data)
791787
{
792788
int err;

0 commit comments

Comments
 (0)