Commit e31dd6e4 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

[PATCH] 64bit resource: change pci core and arch code to use resource_size_t

Based on a patch series originally from Vivek Goyal <vgoyal@in.ibm.com>

Cc: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent d75fc8bb
...@@ -124,12 +124,12 @@ DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_final); ...@@ -124,12 +124,12 @@ DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, pcibios_fixup_final);
void void
pcibios_align_resource(void *data, struct resource *res, pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
struct pci_controller *hose = dev->sysdata; struct pci_controller *hose = dev->sysdata;
unsigned long alignto; unsigned long alignto;
unsigned long start = res->start; resource_size_t start = res->start;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
/* Make sure we start at our min on all hoses */ /* Make sure we start at our min on all hoses */
......
...@@ -304,7 +304,7 @@ static inline int pdev_bad_for_parity(struct pci_dev *dev) ...@@ -304,7 +304,7 @@ static inline int pdev_bad_for_parity(struct pci_dev *dev)
static void __devinit static void __devinit
pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev) pdev_fixup_device_resources(struct pci_sys_data *root, struct pci_dev *dev)
{ {
unsigned long offset; resource_size_t offset;
int i; int i;
for (i = 0; i < PCI_NUM_RESOURCES; i++) { for (i = 0; i < PCI_NUM_RESOURCES; i++) {
...@@ -634,9 +634,9 @@ char * __init pcibios_setup(char *str) ...@@ -634,9 +634,9 @@ char * __init pcibios_setup(char *str)
* which might be mirrored at 0x0100-0x03ff.. * which might be mirrored at 0x0100-0x03ff..
*/ */
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
unsigned long start = res->start; resource_size_t start = res->start;
if (res->flags & IORESOURCE_IO && start & 0x300) if (res->flags & IORESOURCE_IO && start & 0x300)
start = (start + 0x3ff) & ~0x3ff; start = (start + 0x3ff) & ~0x3ff;
......
...@@ -43,10 +43,10 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, ...@@ -43,10 +43,10 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
void void
pcibios_align_resource(void *data, struct resource *res, pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (start & 0x300) { if (start & 0x300) {
start = (start + 0x3ff) & ~0x3ff; start = (start + 0x3ff) & ~0x3ff;
......
...@@ -64,10 +64,10 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root, ...@@ -64,10 +64,10 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root,
*/ */
void void
pcibios_align_resource(void *data, struct resource *res, pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (start & 0x300) { if (start & 0x300) {
start = (start + 0x3ff) & ~0x3ff; start = (start + 0x3ff) & ~0x3ff;
......
...@@ -48,10 +48,10 @@ ...@@ -48,10 +48,10 @@
*/ */
void void
pcibios_align_resource(void *data, struct resource *res, pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (start & 0x300) { if (start & 0x300) {
start = (start + 0x3ff) & ~0x3ff; start = (start + 0x3ff) & ~0x3ff;
......
...@@ -568,7 +568,7 @@ pcibios_disable_device (struct pci_dev *dev) ...@@ -568,7 +568,7 @@ pcibios_disable_device (struct pci_dev *dev)
void void
pcibios_align_resource (void *data, struct resource *res, pcibios_align_resource (void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
} }
......
...@@ -357,7 +357,8 @@ void pcibios_fixup_bus(struct pci_bus *b) ...@@ -357,7 +357,8 @@ void pcibios_fixup_bus(struct pci_bus *b)
/*****************************************************************************/ /*****************************************************************************/
void pcibios_align_resource(void *data, struct resource *res, unsigned long size, unsigned long align) void pcibios_align_resource(void *data, struct resource *res,
resource_size_t size, resource_size_t align)
{ {
} }
......
...@@ -51,11 +51,11 @@ unsigned long PCIBIOS_MIN_MEM = 0; ...@@ -51,11 +51,11 @@ unsigned long PCIBIOS_MIN_MEM = 0;
*/ */
void void
pcibios_align_resource(void *data, struct resource *res, pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
struct pci_controller *hose = dev->sysdata; struct pci_controller *hose = dev->sysdata;
unsigned long start = res->start; resource_size_t start = res->start;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
/* Make sure we start at our min on all hoses */ /* Make sure we start at our min on all hoses */
......
...@@ -383,12 +383,12 @@ void pcibios_update_resource(struct pci_dev *dev, struct resource *root, ...@@ -383,12 +383,12 @@ void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
/* We need to avoid collisions with `mirrored' VGA ports /* We need to avoid collisions with `mirrored' VGA ports
and other strange ISA hardware, so we always want the and other strange ISA hardware, so we always want the
......
...@@ -289,7 +289,7 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); ...@@ -289,7 +289,7 @@ EXPORT_SYMBOL(pcibios_bus_to_resource);
* than res->start. * than res->start.
*/ */
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long alignment) resource_size_t size, resource_size_t alignment)
{ {
unsigned long mask, align; unsigned long mask, align;
......
...@@ -173,18 +173,18 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); ...@@ -173,18 +173,18 @@ EXPORT_SYMBOL(pcibios_bus_to_resource);
* but we want to try to avoid allocating at 0x2900-0x2bff * but we want to try to avoid allocating at 0x2900-0x2bff
* which might have be mirrored at 0x0100-0x03ff.. * which might have be mirrored at 0x0100-0x03ff..
*/ */
void pcibios_align_resource(void *data, struct resource *res, unsigned long size, void pcibios_align_resource(void *data, struct resource *res,
unsigned long align) resource_size_t size, resource_size_t align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (size > 0x100) { if (size > 0x100) {
printk(KERN_ERR "PCI: I/O Region %s/%d too large" printk(KERN_ERR "PCI: I/O Region %s/%d too large"
" (%lld bytes)\n", pci_name(dev), " (%lld bytes)\n", pci_name(dev),
dev->resource - res, size); dev->resource - res, (unsigned long long)size);
} }
if (start & 0x300) { if (start & 0x300) {
...@@ -1756,7 +1756,7 @@ long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn) ...@@ -1756,7 +1756,7 @@ long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn)
void pci_resource_to_user(const struct pci_dev *dev, int bar, void pci_resource_to_user(const struct pci_dev *dev, int bar,
const struct resource *rsrc, const struct resource *rsrc,
u64 *start, u64 *end) resource_size_t *start, resource_size_t *end)
{ {
struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); struct pci_controller *hose = pci_bus_to_hose(dev->bus->number);
unsigned long offset = 0; unsigned long offset = 0;
......
...@@ -138,11 +138,11 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); ...@@ -138,11 +138,11 @@ EXPORT_SYMBOL(pcibios_bus_to_resource);
* which might have be mirrored at 0x0100-0x03ff.. * which might have be mirrored at 0x0100-0x03ff..
*/ */
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
struct pci_controller *hose = pci_bus_to_host(dev->bus); struct pci_controller *hose = pci_bus_to_host(dev->bus);
unsigned long start = res->start; resource_size_t start = res->start;
unsigned long alignto; unsigned long alignto;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
......
...@@ -171,13 +171,13 @@ EXPORT_SYMBOL(pcibios_bus_to_resource); ...@@ -171,13 +171,13 @@ EXPORT_SYMBOL(pcibios_bus_to_resource);
* but we want to try to avoid allocating at 0x2900-0x2bff * but we want to try to avoid allocating at 0x2900-0x2bff
* which might have be mirrored at 0x0100-0x03ff.. * which might have be mirrored at 0x0100-0x03ff..
*/ */
void pcibios_align_resource(void *data, struct resource *res, unsigned long size, void pcibios_align_resource(void *data, struct resource *res,
unsigned long align) resource_size_t size, resource_size_t align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (size > 0x100) { if (size > 0x100) {
printk(KERN_ERR "PCI: I/O Region %s/%d too large" printk(KERN_ERR "PCI: I/O Region %s/%d too large"
...@@ -960,8 +960,8 @@ static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp, ...@@ -960,8 +960,8 @@ static pgprot_t __pci_mmap_set_pgprot(struct pci_dev *dev, struct resource *rp,
else else
prot |= _PAGE_GUARDED; prot |= _PAGE_GUARDED;
printk("PCI map for %s:%llx, prot: %llx\n", pci_name(dev), rp->start, printk("PCI map for %s:%llx, prot: %lx\n", pci_name(dev),
prot); (unsigned long long)rp->start, prot);
return __pgprot(prot); return __pgprot(prot);
} }
...@@ -1130,7 +1130,7 @@ long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn) ...@@ -1130,7 +1130,7 @@ long sys_pciconfig_iobase(long which, unsigned long bus, unsigned long devfn)
void pci_resource_to_user(const struct pci_dev *dev, int bar, void pci_resource_to_user(const struct pci_dev *dev, int bar,
const struct resource *rsrc, const struct resource *rsrc,
u64 *start, u64 *end) resource_size_t *start, resource_size_t *end)
{ {
struct pci_controller *hose = pci_bus_to_hose(dev->bus->number); struct pci_controller *hose = pci_bus_to_hose(dev->bus->number);
unsigned long offset = 0; unsigned long offset = 0;
......
...@@ -273,9 +273,9 @@ void __init pcibios_fixup_irqs(void) ...@@ -273,9 +273,9 @@ void __init pcibios_fixup_irqs(void)
} }
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
unsigned long start = res->start; resource_size_t start = res->start;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
if (start >= 0x10000UL) { if (start >= 0x10000UL) {
......
...@@ -536,7 +536,7 @@ void __init pcibios_fixup_bus(struct pci_bus *bus) ...@@ -536,7 +536,7 @@ void __init pcibios_fixup_bus(struct pci_bus *bus)
} }
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size) resource_size_t size)
{ {
} }
......
...@@ -75,7 +75,7 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root, ...@@ -75,7 +75,7 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root,
} }
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
__attribute__ ((weak)); __attribute__ ((weak));
/* /*
...@@ -85,10 +85,10 @@ void pcibios_align_resource(void *data, struct resource *res, ...@@ -85,10 +85,10 @@ void pcibios_align_resource(void *data, struct resource *res,
* modulo 0x400. * modulo 0x400.
*/ */
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (start & 0x300) { if (start & 0x300) {
start = (start + 0x3ff) & ~0x3ff; start = (start + 0x3ff) & ~0x3ff;
......
...@@ -69,10 +69,10 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root, ...@@ -69,10 +69,10 @@ pcibios_update_resource(struct pci_dev *dev, struct resource *root,
* modulo 0x400. * modulo 0x400.
*/ */
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (start & 0x300) { if (start & 0x300) {
start = (start + 0x3ff) & ~0x3ff; start = (start + 0x3ff) & ~0x3ff;
......
...@@ -860,7 +860,7 @@ char * __init pcibios_setup(char *str) ...@@ -860,7 +860,7 @@ char * __init pcibios_setup(char *str)
} }
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
} }
......
...@@ -357,7 +357,7 @@ void pcibios_update_irq(struct pci_dev *pdev, int irq) ...@@ -357,7 +357,7 @@ void pcibios_update_irq(struct pci_dev *pdev, int irq)
} }
void pcibios_align_resource(void *data, struct resource *res, void pcibios_align_resource(void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
} }
......
...@@ -329,7 +329,7 @@ void pcibios_fixup_bus(struct pci_bus *b) ...@@ -329,7 +329,7 @@ void pcibios_fixup_bus(struct pci_bus *b)
void void
pcibios_align_resource (void *data, struct resource *res, pcibios_align_resource (void *data, struct resource *res,
unsigned long size, unsigned long align) resource_size_t size, resource_size_t align)
{ {
} }
......
...@@ -71,13 +71,13 @@ static int pci_bus_count; ...@@ -71,13 +71,13 @@ static int pci_bus_count;
* which might have be mirrored at 0x0100-0x03ff.. * which might have be mirrored at 0x0100-0x03ff..
*/ */
void void
pcibios_align_resource(void *data, struct resource *res, unsigned long size, pcibios_align_resource(void *data, struct resource *res, resource_size_t size,
unsigned long align) resource_size_t align)
{ {
struct pci_dev *dev = data; struct pci_dev *dev = data;
if (res->flags & IORESOURCE_IO) { if (res->flags & IORESOURCE_IO) {
unsigned long start = res->start; resource_size_t start = res->start;
if (size > 0x100) { if (size > 0x100) {
printk(KERN_ERR "PCI: I/O Region %s/%d too large" printk(KERN_ERR "PCI: I/O Region %s/%d too large"
......
...@@ -34,11 +34,11 @@ ...@@ -34,11 +34,11 @@
*/ */
int int
pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
unsigned long size, unsigned long align, unsigned long min, resource_size_t size, resource_size_t align,
unsigned int type_mask, resource_size_t min, unsigned int type_mask,
void (*alignf)(void *, struct resource *, void (*alignf)(void *, struct resource *, resource_size_t,
unsigned long, unsigned long), resource_size_t),
void *alignf_data) void *alignf_data)
{ {
int i, ret = -ENOMEM; int i, ret = -ENOMEM;
......
...@@ -87,7 +87,7 @@ resource_show(struct device * dev, struct device_attribute *attr, char * buf) ...@@ -87,7 +87,7 @@ resource_show(struct device * dev, struct device_attribute *attr, char * buf)
char * str = buf; char * str = buf;
int i; int i;
int max = 7; int max = 7;
u64 start, end; resource_size_t start, end;
if (pci_dev->subordinate) if (pci_dev->subordinate)
max = DEVICE_COUNT_RESOURCE; max = DEVICE_COUNT_RESOURCE;
...@@ -365,7 +365,7 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr, ...@@ -365,7 +365,7 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
struct device, kobj)); struct device, kobj));
struct resource *res = (struct resource *)attr->private; struct resource *res = (struct resource *)attr->private;
enum pci_mmap_state mmap_type; enum pci_mmap_state mmap_type;
u64 start, end; resource_size_t start, end;
int i; int i;
for (i = 0; i < PCI_ROM_RESOURCE; i++) for (i = 0; i < PCI_ROM_RESOURCE; i++)
......
...@@ -6,10 +6,10 @@ extern int pci_create_sysfs_dev_files(struct pci_dev *pdev); ...@@ -6,10 +6,10 @@ extern int pci_create_sysfs_dev_files(struct pci_dev *pdev);
extern void pci_remove_sysfs_dev_files(struct pci_dev *pdev); extern void pci_remove_sysfs_dev_files(struct pci_dev *pdev);
extern void pci_cleanup_rom(struct pci_dev *dev); extern void pci_cleanup_rom(struct pci_dev *dev);
extern int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, extern int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
unsigned long size, unsigned long align, resource_size_t size, resource_size_t align,
unsigned long min, unsigned int type_mask, resource_size_t min, unsigned int type_mask,
void (*alignf)(void *, struct resource *, void (*alignf)(void *, struct resource *,
unsigned long, unsigned long), resource_size_t, resource_size_t),
void *alignf_data); void *alignf_data);
/* Firmware callbacks */ /* Firmware callbacks */
extern int (*platform_pci_choose_state)(struct pci_dev *dev, pm_message_t state); extern int (*platform_pci_choose_state)(struct pci_dev *dev, pm_message_t state);
......
...@@ -350,14 +350,14 @@ static int show_device(struct seq_file *m, void *v) ...@@ -350,14 +350,14 @@ static int show_device(struct seq_file *m, void *v)
dev->irq); dev->irq);
/* Here should be 7 and not PCI_NUM_RESOURCES as we need to preserve compatibility */ /* Here should be 7 and not PCI_NUM_RESOURCES as we need to preserve compatibility */
for (i=0; i<7; i++) { for (i=0; i<7; i++) {
u64 start, end; resource_size_t start, end;
pci_resource_to_user(dev, i, &dev->resource[i], &start, &end); pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
seq_printf(m, "\t%16llx", seq_printf(m, "\t%16llx",
(unsigned long long)(start | (unsigned long long)(start |
(dev->resource[i].flags & PCI_REGION_FLAG_MASK))); (dev->resource[i].flags & PCI_REGION_FLAG_MASK)));
} }
for (i=0; i<7; i++) { for (i=0; i<7; i++) {
u64 start, end; resource_size_t start, end;
pci_resource_to_user(dev, i, &dev->resource[i], &start, &end); pci_resource_to_user(dev, i, &dev->resource[i], &start, &end);
seq_printf(m, "\t%16llx", seq_printf(m, "\t%16llx",
dev->resource[i].start < dev->resource[i].end ? dev->resource[i].start < dev->resource[i].end ?
......
...@@ -80,8 +80,8 @@ void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size) ...@@ -80,8 +80,8 @@ void __iomem *pci_map_rom(struct pci_dev *pdev, size_t *size)
} else { } else {
if (res->flags & IORESOURCE_ROM_COPY) { if (res->flags & IORESOURCE_ROM_COPY) {
*size = pci_resource_len(pdev, PCI_ROM_RESOURCE); *size = pci_resource_len(pdev, PCI_ROM_RESOURCE);
return (void __iomem *)pci_resource_start(pdev, return (void __iomem *)(unsigned long)
PCI_ROM_RESOURCE); pci_resource_start(pdev, PCI_ROM_RESOURCE);
} else { } else {
/* assign the ROM an address if it doesn't have one */ /* assign the ROM an address if it doesn't have one */
if (res->parent == NULL && if (res->parent == NULL &&
...@@ -170,11 +170,11 @@ void __iomem *pci_map_rom_copy(struct pci_dev *pdev, size_t *size) ...@@ -170,11 +170,11 @@ void __iomem *pci_map_rom_copy(struct pci_dev *pdev, size_t *size)
return rom; return rom;
res->end = res->start + *size; res->end = res->start + *size;
memcpy_fromio((void*)res->start, rom, *size); memcpy_fromio((void*)(unsigned long)res->start, rom, *size);
pci_unmap_rom(pdev, rom); pci_unmap_rom(pdev, rom);
res->flags |= IORESOURCE_ROM_COPY; res->flags |= IORESOURCE_ROM_COPY;
return (void __iomem *)res->start; return (void __iomem *)(unsigned long)res->start;
} }
/** /**
...@@ -227,7 +227,7 @@ void pci_cleanup_rom(struct pci_dev *pdev) ...@@ -227,7 +227,7 @@ void pci_cleanup_rom(struct pci_dev *pdev)
{ {
struct resource *res = &pdev->resource[PCI_ROM_RESOURCE]; struct resource *res = &pdev->resource[PCI_ROM_RESOURCE];
if (res->flags & IORESOURCE_ROM_COPY) { if (res->flags & IORESOURCE_ROM_COPY) {
kfree((void*)res->start); kfree((void*)(unsigned long)res->start);
res->flags &= ~IORESOURCE_ROM_COPY; res->flags &= ~IORESOURCE_ROM_COPY;
res->start = 0; res->start = 0;
res->end = 0; res->end = 0;
......
...@@ -121,7 +121,7 @@ int pci_assign_resource(struct pci_dev *dev, int resno) ...@@ -121,7 +121,7 @@ int pci_assign_resource(struct pci_dev *dev, int resno)
{ {
struct pci_bus *bus = dev->bus; struct pci_bus *bus = dev->bus;
struct resource *res = dev->resource + resno; struct resource *res = dev->resource + resno;
unsigned long size, min, align; resource_size_t size, min, align;
int ret; int ret;
size = res->end - res->start + 1; size = res->end - res->start + 1;
...@@ -209,7 +209,7 @@ pdev_sort_resources(struct pci_dev *dev, struct resource_list *head) ...@@ -209,7 +209,7 @@ pdev_sort_resources(struct pci_dev *dev, struct resource_list *head)
for (i = 0; i < PCI_NUM_RESOURCES; i++) { for (i = 0; i < PCI_NUM_RESOURCES; i++) {
struct resource *r; struct resource *r;
struct resource_list *list, *tmp; struct resource_list *list, *tmp;
unsigned long r_align; resource_size_t r_align;
r = &dev->resource[i]; r = &dev->resource[i];
r_align = r->end - r->start; r_align = r->end - r->start;
...@@ -225,7 +225,7 @@ pdev_sort_resources(struct pci_dev *dev, struct resource_list *head) ...@@ -225,7 +225,7 @@ pdev_sort_resources(struct pci_dev *dev, struct resource_list *head)
} }
r_align = (i < PCI_BRIDGE_RESOURCES) ? r_align + 1 : r->start; r_align = (i < PCI_BRIDGE_RESOURCES) ? r_align + 1 : r->start;
for (list = head; ; list = list->next) { for (list = head; ; list = list->next) {
unsigned long align = 0; resource_size_t align = 0;
struct resource_list *ln = list->next; struct resource_list *ln = list->next;
int idx; int idx;
......
...@@ -28,7 +28,7 @@ struct hw_pci { ...@@ -28,7 +28,7 @@ struct hw_pci {
struct pci_sys_data { struct pci_sys_data {
struct list_head node; struct list_head node;
int busnr; /* primary bus number */ int busnr; /* primary bus number */
unsigned long mem_offset; /* bus->cpu memory mapping offset */ u64 mem_offset; /* bus->cpu memory mapping offset */
unsigned long io_offset; /* bus->cpu IO mapping offset */ unsigned long io_offset; /* bus->cpu IO mapping offset */
struct pci_bus *bus; /* PCI bus */ struct pci_bus *bus; /* PCI bus */
struct resource *resource[3]; /* Primary PCI bus resources */ struct resource *resource[3]; /* Primary PCI bus resources */
......
...@@ -242,7 +242,7 @@ extern pgprot_t pci_phys_mem_access_prot(struct file *file, ...@@ -242,7 +242,7 @@ extern pgprot_t pci_phys_mem_access_prot(struct file *file,
#define HAVE_ARCH_PCI_RESOURCE_TO_USER #define HAVE_ARCH_PCI_RESOURCE_TO_USER
extern void pci_resource_to_user(const struct pci_dev *dev, int bar, extern void pci_resource_to_user(const struct pci_dev *dev, int bar,
const struct resource *rsrc, const struct resource *rsrc,
u64 *start, u64 *end); resource_size_t *start, resource_size_t *end);
#endif /* CONFIG_PPC_MULTIPLATFORM || CONFIG_PPC32 */ #endif /* CONFIG_PPC_MULTIPLATFORM || CONFIG_PPC32 */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -133,7 +133,7 @@ extern pgprot_t pci_phys_mem_access_prot(struct file *file, ...@@ -133,7 +133,7 @@ extern pgprot_t pci_phys_mem_access_prot(struct file *file,
#define HAVE_ARCH_PCI_RESOURCE_TO_USER #define HAVE_ARCH_PCI_RESOURCE_TO_USER
extern void pci_resource_to_user(const struct pci_dev *dev, int bar, extern void pci_resource_to_user(const struct pci_dev *dev, int bar,
const struct resource *rsrc, const struct resource *rsrc,
u64 *start, u64 *end); resource_size_t *start, resource_size_t *end);
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -404,8 +404,8 @@ int pcibios_enable_device(struct pci_dev *, int mask); ...@@ -404,8 +404,8 @@ int pcibios_enable_device(struct pci_dev *, int mask);
char *pcibios_setup (char *str); char *pcibios_setup (char *str);
/* Used only when drivers/pci/setup.c is used */ /* Used only when drivers/pci/setup.c is used */
void pcibios_align_resource(void *, struct resource *, void pcibios_align_resource(void *, struct resource *, resource_size_t,
unsigned long, unsigned long); resource_size_t);
void pcibios_update_irq(struct pci_dev *, int irq); void pcibios_update_irq(struct pci_dev *, int irq);
/* Generic PCI functions used internally */ /* Generic PCI functions used internally */
...@@ -532,10 +532,10 @@ void pci_release_region(struct pci_dev *, int); ...@@ -532,10 +532,10 @@ void pci_release_region(struct pci_dev *, int);
/* drivers/pci/bus.c */ /* drivers/pci/bus.c */
int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res, int pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
unsigned long size, unsigned long align, resource_size_t size, resource_size_t align,
unsigned long min, unsigned int type_mask, resource_size_t min, unsigned int type_mask,
void (*alignf)(void *, struct resource *, void (*alignf)(void *, struct resource *,
unsigned long, unsigned long), resource_size_t, resource_size_t),
void *alignf_data); void *alignf_data);
void pci_enable_bridges(struct pci_bus *bus); void pci_enable_bridges(struct pci_bus *bus);
...@@ -730,7 +730,8 @@ static inline char *pci_name(struct pci_dev *pdev) ...@@ -730,7 +730,8 @@ static inline char *pci_name(struct pci_dev *pdev)
*/ */
#ifndef HAVE_ARCH_PCI_RESOURCE_TO_USER #ifndef HAVE_ARCH_PCI_RESOURCE_TO_USER
static inline void pci_resource_to_user(const struct pci_dev *dev, int bar, static inline void pci_resource_to_user(const struct pci_dev *dev, int bar,
const struct resource *rsrc, u64 *start, u64 *end) const struct resource *rsrc, resource_size_t *start,
resource_size_t *end)
{ {
*start = rsrc->start; *start = rsrc->start;
*end = rsrc->end; *end = rsrc->end;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment