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:
parent
3c8edf0eca
commit
f4f3d0f0ec
10 changed files with 33 additions and 41 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Reference in a new issue