diff options
author | Roland Dreier <rolandd@cisco.com> | 2007-10-10 18:43:54 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2007-10-10 18:43:54 -0400 |
commit | 3d73c2884f45f9a297cbc956cea101405a9703f2 (patch) | |
tree | 2811672910ba925916e568f5275e0be630bec2ca /drivers/net/mlx4/eq.c | |
parent | 335a64a5a958002bc238c90de695e120c3c8c120 (diff) |
mlx4_core: Fix section mismatches
Commit ee49bd93 ("mlx4_core: Reset device when internal error is
detected") introduced some section mismatch problems when
CONFIG_HOTPLUG=n, because the error recovery code tears down and
reinitializes the device after everything is loaded, which ends up
calling into lots of code marked __devinit and __devexit from regular
.text. Fix this by getting rid of these now-incorrect section
markers.
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/net/mlx4/eq.c')
-rw-r--r-- | drivers/net/mlx4/eq.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/net/mlx4/eq.c b/drivers/net/mlx4/eq.c index 2095c843fa15..9c36c2034030 100644 --- a/drivers/net/mlx4/eq.c +++ b/drivers/net/mlx4/eq.c | |||
@@ -300,8 +300,7 @@ static int mlx4_HW2SW_EQ(struct mlx4_dev *dev, struct mlx4_cmd_mailbox *mailbox, | |||
300 | MLX4_CMD_TIME_CLASS_A); | 300 | MLX4_CMD_TIME_CLASS_A); |
301 | } | 301 | } |
302 | 302 | ||
303 | static void __devinit __iomem *mlx4_get_eq_uar(struct mlx4_dev *dev, | 303 | static void __iomem *mlx4_get_eq_uar(struct mlx4_dev *dev, struct mlx4_eq *eq) |
304 | struct mlx4_eq *eq) | ||
305 | { | 304 | { |
306 | struct mlx4_priv *priv = mlx4_priv(dev); | 305 | struct mlx4_priv *priv = mlx4_priv(dev); |
307 | int index; | 306 | int index; |
@@ -323,8 +322,8 @@ static void __devinit __iomem *mlx4_get_eq_uar(struct mlx4_dev *dev, | |||
323 | return priv->eq_table.uar_map[index] + 0x800 + 8 * (eq->eqn % 4); | 322 | return priv->eq_table.uar_map[index] + 0x800 + 8 * (eq->eqn % 4); |
324 | } | 323 | } |
325 | 324 | ||
326 | static int __devinit mlx4_create_eq(struct mlx4_dev *dev, int nent, | 325 | static int mlx4_create_eq(struct mlx4_dev *dev, int nent, |
327 | u8 intr, struct mlx4_eq *eq) | 326 | u8 intr, struct mlx4_eq *eq) |
328 | { | 327 | { |
329 | struct mlx4_priv *priv = mlx4_priv(dev); | 328 | struct mlx4_priv *priv = mlx4_priv(dev); |
330 | struct mlx4_cmd_mailbox *mailbox; | 329 | struct mlx4_cmd_mailbox *mailbox; |
@@ -485,7 +484,7 @@ static void mlx4_free_irqs(struct mlx4_dev *dev) | |||
485 | free_irq(eq_table->eq[i].irq, eq_table->eq + i); | 484 | free_irq(eq_table->eq[i].irq, eq_table->eq + i); |
486 | } | 485 | } |
487 | 486 | ||
488 | static int __devinit mlx4_map_clr_int(struct mlx4_dev *dev) | 487 | static int mlx4_map_clr_int(struct mlx4_dev *dev) |
489 | { | 488 | { |
490 | struct mlx4_priv *priv = mlx4_priv(dev); | 489 | struct mlx4_priv *priv = mlx4_priv(dev); |
491 | 490 | ||
@@ -506,7 +505,7 @@ static void mlx4_unmap_clr_int(struct mlx4_dev *dev) | |||
506 | iounmap(priv->clr_base); | 505 | iounmap(priv->clr_base); |
507 | } | 506 | } |
508 | 507 | ||
509 | int __devinit mlx4_map_eq_icm(struct mlx4_dev *dev, u64 icm_virt) | 508 | int mlx4_map_eq_icm(struct mlx4_dev *dev, u64 icm_virt) |
510 | { | 509 | { |
511 | struct mlx4_priv *priv = mlx4_priv(dev); | 510 | struct mlx4_priv *priv = mlx4_priv(dev); |
512 | int ret; | 511 | int ret; |
@@ -548,7 +547,7 @@ void mlx4_unmap_eq_icm(struct mlx4_dev *dev) | |||
548 | __free_page(priv->eq_table.icm_page); | 547 | __free_page(priv->eq_table.icm_page); |
549 | } | 548 | } |
550 | 549 | ||
551 | int __devinit mlx4_init_eq_table(struct mlx4_dev *dev) | 550 | int mlx4_init_eq_table(struct mlx4_dev *dev) |
552 | { | 551 | { |
553 | struct mlx4_priv *priv = mlx4_priv(dev); | 552 | struct mlx4_priv *priv = mlx4_priv(dev); |
554 | int err; | 553 | int err; |