Archived
14
0
Fork 0

IB/mthca: Fix section mismatches

Commit b3b30f5e ("IB/mthca: Recover from catastrophic errors")
introduced some section mismatch breakage, because the error recovery
code tears down and reinitializes the device, which calls into lots of
code originally marked __devinit and __devexit from regular .text.

Fix this by getting rid of these now-incorrect section markers.

Reported by Randy Dunlap <randy.dunlap@oracle.com>.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
Roland Dreier 2006-11-29 15:33:06 -08:00
parent 3c8edf0eca
commit f4f3d0f0ec
10 changed files with 33 additions and 41 deletions

View file

@ -33,7 +33,6 @@
* $Id: mthca_av.c 1349 2004-12-16 21:09:43Z roland $
*/
#include <linux/init.h>
#include <linux/string.h>
#include <linux/slab.h>
@ -323,7 +322,7 @@ int mthca_ah_query(struct ib_ah *ibah, struct ib_ah_attr *attr)
return 0;
}
int __devinit mthca_init_av_table(struct mthca_dev *dev)
int mthca_init_av_table(struct mthca_dev *dev)
{
int err;

View file

@ -36,7 +36,6 @@
* $Id: mthca_cq.c 1369 2004-12-20 16:17:07Z roland $
*/
#include <linux/init.h>
#include <linux/hardirq.h>
#include <asm/io.h>
@ -970,7 +969,7 @@ void mthca_free_cq(struct mthca_dev *dev,
mthca_free_mailbox(dev, mailbox);
}
int __devinit mthca_init_cq_table(struct mthca_dev *dev)
int mthca_init_cq_table(struct mthca_dev *dev)
{
int err;

View file

@ -33,7 +33,6 @@
* $Id: mthca_eq.c 1382 2004-12-24 02:21:02Z roland $
*/
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/pci.h>
@ -479,10 +478,10 @@ static irqreturn_t mthca_arbel_msi_x_interrupt(int irq, void *eq_ptr)
return IRQ_HANDLED;
}
static int __devinit mthca_create_eq(struct mthca_dev *dev,
int nent,
u8 intr,
struct mthca_eq *eq)
static int mthca_create_eq(struct mthca_dev *dev,
int nent,
u8 intr,
struct mthca_eq *eq)
{
int npages;
u64 *dma_list = NULL;
@ -664,9 +663,9 @@ static void mthca_free_irqs(struct mthca_dev *dev)
dev->eq_table.eq + i);
}
static int __devinit mthca_map_reg(struct mthca_dev *dev,
unsigned long offset, unsigned long size,
void __iomem **map)
static int mthca_map_reg(struct mthca_dev *dev,
unsigned long offset, unsigned long size,
void __iomem **map)
{
unsigned long base = pci_resource_start(dev->pdev, 0);
@ -691,7 +690,7 @@ static void mthca_unmap_reg(struct mthca_dev *dev, unsigned long offset,
iounmap(map);
}
static int __devinit mthca_map_eq_regs(struct mthca_dev *dev)
static int mthca_map_eq_regs(struct mthca_dev *dev)
{
if (mthca_is_memfree(dev)) {
/*
@ -781,7 +780,7 @@ static void mthca_unmap_eq_regs(struct mthca_dev *dev)
}
}
int __devinit mthca_map_eq_icm(struct mthca_dev *dev, u64 icm_virt)
int mthca_map_eq_icm(struct mthca_dev *dev, u64 icm_virt)
{
int ret;
u8 status;
@ -825,7 +824,7 @@ void mthca_unmap_eq_icm(struct mthca_dev *dev)
__free_page(dev->eq_table.icm_page);
}
int __devinit mthca_init_eq_table(struct mthca_dev *dev)
int mthca_init_eq_table(struct mthca_dev *dev)
{
int err;
u8 status;

View file

@ -317,7 +317,7 @@ err:
return ret;
}
void __devexit mthca_free_agents(struct mthca_dev *dev)
void mthca_free_agents(struct mthca_dev *dev)
{
struct ib_mad_agent *agent;
int p, q;

View file

@ -98,7 +98,7 @@ static struct mthca_profile default_profile = {
.uarc_size = 1 << 18, /* Arbel only */
};
static int __devinit mthca_tune_pci(struct mthca_dev *mdev)
static int mthca_tune_pci(struct mthca_dev *mdev)
{
int cap;
u16 val;
@ -143,7 +143,7 @@ static int __devinit mthca_tune_pci(struct mthca_dev *mdev)
return 0;
}
static int __devinit mthca_dev_lim(struct mthca_dev *mdev, struct mthca_dev_lim *dev_lim)
static int mthca_dev_lim(struct mthca_dev *mdev, struct mthca_dev_lim *dev_lim)
{
int err;
u8 status;
@ -255,7 +255,7 @@ static int __devinit mthca_dev_lim(struct mthca_dev *mdev, struct mthca_dev_lim
return 0;
}
static int __devinit mthca_init_tavor(struct mthca_dev *mdev)
static int mthca_init_tavor(struct mthca_dev *mdev)
{
u8 status;
int err;
@ -333,7 +333,7 @@ err_disable:
return err;
}
static int __devinit mthca_load_fw(struct mthca_dev *mdev)
static int mthca_load_fw(struct mthca_dev *mdev)
{
u8 status;
int err;
@ -379,10 +379,10 @@ err_free:
return err;
}
static int __devinit mthca_init_icm(struct mthca_dev *mdev,
struct mthca_dev_lim *dev_lim,
struct mthca_init_hca_param *init_hca,
u64 icm_size)
static int mthca_init_icm(struct mthca_dev *mdev,
struct mthca_dev_lim *dev_lim,
struct mthca_init_hca_param *init_hca,
u64 icm_size)
{
u64 aux_pages;
u8 status;
@ -575,7 +575,7 @@ static void mthca_free_icms(struct mthca_dev *mdev)
mthca_free_icm(mdev, mdev->fw.arbel.aux_icm);
}
static int __devinit mthca_init_arbel(struct mthca_dev *mdev)
static int mthca_init_arbel(struct mthca_dev *mdev)
{
struct mthca_dev_lim dev_lim;
struct mthca_profile profile;
@ -683,7 +683,7 @@ static void mthca_close_hca(struct mthca_dev *mdev)
mthca_SYS_DIS(mdev, &status);
}
static int __devinit mthca_init_hca(struct mthca_dev *mdev)
static int mthca_init_hca(struct mthca_dev *mdev)
{
u8 status;
int err;
@ -720,7 +720,7 @@ err_close:
return err;
}
static int __devinit mthca_setup_hca(struct mthca_dev *dev)
static int mthca_setup_hca(struct mthca_dev *dev)
{
int err;
u8 status;
@ -875,8 +875,7 @@ err_uar_table_free:
return err;
}
static int __devinit mthca_request_regions(struct pci_dev *pdev,
int ddr_hidden)
static int mthca_request_regions(struct pci_dev *pdev, int ddr_hidden)
{
int err;
@ -928,7 +927,7 @@ static void mthca_release_regions(struct pci_dev *pdev,
MTHCA_HCR_SIZE);
}
static int __devinit mthca_enable_msi_x(struct mthca_dev *mdev)
static int mthca_enable_msi_x(struct mthca_dev *mdev)
{
struct msix_entry entries[3];
int err;
@ -1213,7 +1212,7 @@ int __mthca_restart_one(struct pci_dev *pdev)
}
static int __devinit mthca_init_one(struct pci_dev *pdev,
const struct pci_device_id *id)
const struct pci_device_id *id)
{
static int mthca_version_printed = 0;
int ret;

View file

@ -32,7 +32,6 @@
* $Id: mthca_mcg.c 1349 2004-12-16 21:09:43Z roland $
*/
#include <linux/init.h>
#include <linux/string.h>
#include <linux/slab.h>
@ -371,7 +370,7 @@ int mthca_multicast_detach(struct ib_qp *ibqp, union ib_gid *gid, u16 lid)
return err;
}
int __devinit mthca_init_mcg_table(struct mthca_dev *dev)
int mthca_init_mcg_table(struct mthca_dev *dev)
{
int err;
int table_size = dev->limits.num_mgms + dev->limits.num_amgms;

View file

@ -34,7 +34,6 @@
*/
#include <linux/slab.h>
#include <linux/init.h>
#include <linux/errno.h>
#include "mthca_dev.h"
@ -135,7 +134,7 @@ static void mthca_buddy_free(struct mthca_buddy *buddy, u32 seg, int order)
spin_unlock(&buddy->lock);
}
static int __devinit mthca_buddy_init(struct mthca_buddy *buddy, int max_order)
static int mthca_buddy_init(struct mthca_buddy *buddy, int max_order)
{
int i, s;
@ -759,7 +758,7 @@ void mthca_arbel_fmr_unmap(struct mthca_dev *dev, struct mthca_fmr *fmr)
*(u8 *) fmr->mem.arbel.mpt = MTHCA_MPT_STATUS_SW;
}
int __devinit mthca_init_mr_table(struct mthca_dev *dev)
int mthca_init_mr_table(struct mthca_dev *dev)
{
unsigned long addr;
int err, i;

View file

@ -34,7 +34,6 @@
* $Id: mthca_pd.c 1349 2004-12-16 21:09:43Z roland $
*/
#include <linux/init.h>
#include <linux/errno.h>
#include "mthca_dev.h"
@ -69,7 +68,7 @@ void mthca_pd_free(struct mthca_dev *dev, struct mthca_pd *pd)
mthca_free(&dev->pd_table.alloc, pd->pd_num);
}
int __devinit mthca_init_pd_table(struct mthca_dev *dev)
int mthca_init_pd_table(struct mthca_dev *dev)
{
return mthca_alloc_init(&dev->pd_table.alloc,
dev->limits.num_pds,

View file

@ -35,7 +35,6 @@
* $Id: mthca_qp.c 1355 2004-12-17 15:23:43Z roland $
*/
#include <linux/init.h>
#include <linux/string.h>
#include <linux/slab.h>
@ -2241,7 +2240,7 @@ void mthca_free_err_wqe(struct mthca_dev *dev, struct mthca_qp *qp, int is_send,
*new_wqe = 0;
}
int __devinit mthca_init_qp_table(struct mthca_dev *dev)
int mthca_init_qp_table(struct mthca_dev *dev)
{
int err;
u8 status;

View file

@ -715,7 +715,7 @@ int mthca_max_srq_sge(struct mthca_dev *dev)
sizeof (struct mthca_data_seg));
}
int __devinit mthca_init_srq_table(struct mthca_dev *dev)
int mthca_init_srq_table(struct mthca_dev *dev)
{
int err;