#define GB                     (1024*MB)
 
 resource_size_t
-pcibios_align_resource(void *data, struct resource *res,
+pcibios_align_resource(void *data, const struct resource *res,
                       resource_size_t size, resource_size_t align)
 {
        struct pci_dev *dev = data;
 
  * but we want to try to avoid allocating at 0x2900-0x2bff
  * which might be mirrored at 0x0100-0x03ff..
  */
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
        resource_size_t start = res->start;
 
 }
 
 resource_size_t
-pcibios_align_resource(void *data, struct resource *res,
+pcibios_align_resource(void *data, const struct resource *res,
                       resource_size_t size, resource_size_t align)
 {
        resource_size_t start = res->start;
 
  * which might have be mirrored at 0x0100-0x03ff..
  */
 resource_size_t
-pcibios_align_resource(void *data, struct resource *res,
+pcibios_align_resource(void *data, const struct resource *res,
                       resource_size_t size, resource_size_t align)
 {
        resource_size_t start = res->start;
 
 }
 
 resource_size_t
-pcibios_align_resource (void *data, struct resource *res,
+pcibios_align_resource (void *data, const struct resource *res,
                        resource_size_t size, resource_size_t align)
 {
        return res->start;
 
  * which might have be mirrored at 0x0100-0x03ff..
  */
 resource_size_t
-pcibios_align_resource(void *data, struct resource *res,
+pcibios_align_resource(void *data, const struct resource *res,
                       resource_size_t size, resource_size_t align)
 {
        struct pci_dev *dev = data;
 
         return pcibios_enable_resources(dev);
 }
 
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
         struct pci_dev *dev = data;
 
  * but we want to try to avoid allocating at 0x2900-0x2bff
  * which might have be mirrored at 0x0100-0x03ff..
  */
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
        resource_size_t start = res->start;
 
  * Since we are just checking candidates, don't use any fields other
  * than res->start.
  */
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t alignment)
 {
        resource_size_t mask, align, start = res->start;
 
  * but we want to try to avoid allocating at 0x2900-0x2bff
  * which might have be mirrored at 0x0100-0x03ff..
  */
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
        struct pci_dev *dev = data;
 
  * addresses to be allocated in the 0x000-0x0ff region
  * modulo 0x400.
  */
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
        struct pci_dev *dev = data;
 
 {
 }
 
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
        return res->start;
 
        return str;
 }
 
-resource_size_t pcibios_align_resource(void *data, struct resource *res,
+resource_size_t pcibios_align_resource(void *data, const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
        return res->start;
 
  * which might have be mirrored at 0x0100-0x03ff..
  */
 resource_size_t
-pcibios_align_resource(void *data, struct resource *res,
+pcibios_align_resource(void *data, const struct resource *res,
                        resource_size_t size, resource_size_t align)
 {
        struct pci_dev *dev = data;
 
  * which might have be mirrored at 0x0100-0x03ff..
  */
 resource_size_t
-pcibios_align_resource(void *data, struct resource *res, resource_size_t size,
-                      resource_size_t align)
+pcibios_align_resource(void *data, const struct resource *res,
+                      resource_size_t size, resource_size_t align)
 {
        struct pci_dev *dev = data;
        resource_size_t start = res->start;
 
                resource_size_t size, resource_size_t align,
                resource_size_t min, unsigned int type_mask,
                resource_size_t (*alignf)(void *,
-                                         struct resource *,
+                                         const struct resource *,
                                          resource_size_t,
                                          resource_size_t),
                void *alignf_data)
 
        unsigned long   offset;
 };
 
-static resource_size_t pcmcia_align(void *align_data, struct resource *res,
+static resource_size_t pcmcia_align(void *align_data,
+                               const struct resource *res,
                                resource_size_t size, resource_size_t align)
 {
        struct pcmcia_align_data *data = align_data;
 
 };
 
 static resource_size_t
-pcmcia_common_align(void *align_data, struct resource *res,
+pcmcia_common_align(void *align_data, const struct resource *res,
                        resource_size_t size, resource_size_t align)
 {
        struct pcmcia_align_data *data = align_data;
 }
 
 static resource_size_t
-pcmcia_align(void *align_data, struct resource *res, resource_size_t size,
-               resource_size_t align)
+pcmcia_align(void *align_data, const struct resource *res,
+       resource_size_t size, resource_size_t align)
 {
        struct pcmcia_align_data *data = align_data;
        struct resource_map *m;
 
                             resource_size_t size, resource_size_t min,
                             resource_size_t max, resource_size_t align,
                             resource_size_t (*alignf)(void *,
-                                                      struct resource *,
+                                                      const struct resource *,
                                                       resource_size_t,
                                                       resource_size_t),
                             void *alignf_data);
 
 char *pcibios_setup(char *str);
 
 /* Used only when drivers/pci/setup.c is used */
-resource_size_t pcibios_align_resource(void *, struct resource *,
+resource_size_t pcibios_align_resource(void *, const struct resource *,
                                resource_size_t,
                                resource_size_t);
 void pcibios_update_irq(struct pci_dev *, int irq);
                        struct resource *res, resource_size_t size,
                        resource_size_t align, resource_size_t min,
                        unsigned int type_mask,
-                       resource_size_t (*alignf)(void *, struct resource *,
+                       resource_size_t (*alignf)(void *,
+                                                 const struct resource *,
                                                  resource_size_t,
                                                  resource_size_t),
                        void *alignf_data);
 
                         resource_size_t size, resource_size_t min,
                         resource_size_t max, resource_size_t align,
                         resource_size_t (*alignf)(void *,
-                                                  struct resource *,
+                                                  const struct resource *,
                                                   resource_size_t,
                                                   resource_size_t),
                         void *alignf_data)
                      resource_size_t size, resource_size_t min,
                      resource_size_t max, resource_size_t align,
                      resource_size_t (*alignf)(void *,
-                                               struct resource *,
+                                               const struct resource *,
                                                resource_size_t,
                                                resource_size_t),
                      void *alignf_data)