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>
此提交包含在:
@@ -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;
|
||||
|
新增問題並參考
封鎖使用者