2009-07-30 09:58:51

by Johannes Berg

[permalink] [raw]
Subject: [PATCH] iwlwifi: don't export symbols not needed in other modules

Even with the split into iwlcore/agn/3945 not all symbols
that cross file boundaries are needed in other modules, a
few are only used within iwlcore, for example.

Signed-off-by: Johannes Berg <[email protected]>
---
drivers/net/wireless/iwlwifi/iwl-core.c | 3 ---
drivers/net/wireless/iwlwifi/iwl-led.c | 1 -
drivers/net/wireless/iwlwifi/iwl-rx.c | 1 -
drivers/net/wireless/iwlwifi/iwl-sta.c | 1 -
4 files changed, 6 deletions(-)

--- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-core.c 2009-07-30 11:42:11.000000000 +0200
+++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-core.c 2009-07-30 11:51:28.000000000 +0200
@@ -1139,7 +1139,6 @@ void iwl_set_flags_for_band(struct iwl_p
priv->staging_rxon.flags &= ~RXON_FLG_CCK_MSK;
}
}
-EXPORT_SYMBOL(iwl_set_flags_for_band);

/*
* initialize rxon structure with default values from eeprom
@@ -2289,7 +2288,6 @@ int iwl_send_card_state(struct iwl_priv

return iwl_send_cmd(priv, &cmd);
}
-EXPORT_SYMBOL(iwl_send_card_state);

void iwl_rx_pm_sleep_notif(struct iwl_priv *priv,
struct iwl_rx_mem_buffer *rxb)
@@ -2333,7 +2331,6 @@ void iwl_clear_isr_stats(struct iwl_priv
{
memset(&priv->isr_stats, 0, sizeof(priv->isr_stats));
}
-EXPORT_SYMBOL(iwl_clear_isr_stats);

int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
const struct ieee80211_tx_queue_params *params)
--- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-led.c 2009-07-30 11:42:11.000000000 +0200
+++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-led.c 2009-07-30 11:50:58.000000000 +0200
@@ -335,7 +335,6 @@ void iwl_leds_background(struct iwl_priv
priv->last_blink_time = jiffies;
priv->last_blink_rate = blink_idx;
}
-EXPORT_SYMBOL(iwl_leds_background);

/* Register all led handler */
int iwl_leds_register(struct iwl_priv *priv)
--- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-rx.c 2009-07-30 11:42:11.000000000 +0200
+++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-rx.c 2009-07-30 11:51:15.000000000 +0200
@@ -406,7 +406,6 @@ void iwl_rx_queue_reset(struct iwl_priv
rxq->free_count = 0;
spin_unlock_irqrestore(&rxq->lock, flags);
}
-EXPORT_SYMBOL(iwl_rx_queue_reset);

int iwl_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
{
--- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-sta.c 2009-07-30 11:42:11.000000000 +0200
+++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-sta.c 2009-07-30 11:51:07.000000000 +0200
@@ -464,7 +464,6 @@ out:
spin_unlock_irqrestore(&priv->sta_lock, flags);
return ret;
}
-EXPORT_SYMBOL(iwl_remove_station);

/**
* iwl_clear_stations_table - Clear the driver's station table




2009-07-31 19:45:16

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: don't export symbols not needed in other modules

On Thu, 2009-07-30 at 12:26 -0700, Johannes Berg wrote:
> On Thu, 2009-07-30 at 11:47 -0700, reinette chatre wrote:
>
> > No. If this is what you want then I think you also need to remove
> > iwl_rx_ant_restriction.
>
> Hm, I missed that, I actually have removed as part of my powersave
> patch.

now I see.

Acked-by: Reinette Chatre <[email protected]>

Reinette


2009-07-30 18:28:03

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: don't export symbols not needed in other modules

Hi Johannes,

On Thu, 2009-07-30 at 02:58 -0700, Johannes Berg wrote:
> Even with the split into iwlcore/agn/3945 not all symbols
> that cross file boundaries are needed in other modules, a
> few are only used within iwlcore, for example.

I think in this case we need to be explicit when talking about "need"
and "used". Yes, some of these exported symbols are only used within a
module and this needs to be fixed. At the same time, some of these may
be needed outside, but are just not currently used. Examples of the
latter are: iwl_remove_station, iwl_rx_ant_restriction, and
iwl_send_card_state. I think this is especially important for
iwl_remove_station and iwl_rx_ant_restriction because their partners
(iwl_add_station and iwl_tx_ant_restriction) are exported and used and I
think it will be clean if they are also, even if they are not currently
used.

I'm thus ok with the removal of symbols iwl_set_flags_for_band,
iwl_clear_isr_stats, iwl_leds_background, and iwl_rx_queue_reset.


> Signed-off-by: Johannes Berg <[email protected]>
> ---
> drivers/net/wireless/iwlwifi/iwl-core.c | 3 ---
> drivers/net/wireless/iwlwifi/iwl-led.c | 1 -
> drivers/net/wireless/iwlwifi/iwl-rx.c | 1 -
> drivers/net/wireless/iwlwifi/iwl-sta.c | 1 -
> 4 files changed, 6 deletions(-)
>
> --- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-core.c 2009-07-30 11:42:11.000000000 +0200
> +++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-core.c 2009-07-30 11:51:28.000000000 +0200
> @@ -1139,7 +1139,6 @@ void iwl_set_flags_for_band(struct iwl_p
> priv->staging_rxon.flags &= ~RXON_FLG_CCK_MSK;
> }
> }
> -EXPORT_SYMBOL(iwl_set_flags_for_band);
>
> /*
> * initialize rxon structure with default values from eeprom
> @@ -2289,7 +2288,6 @@ int iwl_send_card_state(struct iwl_priv
>
> return iwl_send_cmd(priv, &cmd);
> }
> -EXPORT_SYMBOL(iwl_send_card_state);
>
> void iwl_rx_pm_sleep_notif(struct iwl_priv *priv,
> struct iwl_rx_mem_buffer *rxb)
> @@ -2333,7 +2331,6 @@ void iwl_clear_isr_stats(struct iwl_priv
> {
> memset(&priv->isr_stats, 0, sizeof(priv->isr_stats));
> }
> -EXPORT_SYMBOL(iwl_clear_isr_stats);
>
> int iwl_mac_conf_tx(struct ieee80211_hw *hw, u16 queue,
> const struct ieee80211_tx_queue_params *params)
> --- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-led.c 2009-07-30 11:42:11.000000000 +0200
> +++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-led.c 2009-07-30 11:50:58.000000000 +0200
> @@ -335,7 +335,6 @@ void iwl_leds_background(struct iwl_priv
> priv->last_blink_time = jiffies;
> priv->last_blink_rate = blink_idx;
> }
> -EXPORT_SYMBOL(iwl_leds_background);
>
> /* Register all led handler */
> int iwl_leds_register(struct iwl_priv *priv)
> --- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-rx.c 2009-07-30 11:42:11.000000000 +0200
> +++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-rx.c 2009-07-30 11:51:15.000000000 +0200
> @@ -406,7 +406,6 @@ void iwl_rx_queue_reset(struct iwl_priv
> rxq->free_count = 0;
> spin_unlock_irqrestore(&rxq->lock, flags);
> }
> -EXPORT_SYMBOL(iwl_rx_queue_reset);
>
> int iwl_rx_init(struct iwl_priv *priv, struct iwl_rx_queue *rxq)
> {
> --- wireless-testing.orig/drivers/net/wireless/iwlwifi/iwl-sta.c 2009-07-30 11:42:11.000000000 +0200
> +++ wireless-testing/drivers/net/wireless/iwlwifi/iwl-sta.c 2009-07-30 11:51:07.000000000 +0200
> @@ -464,7 +464,6 @@ out:
> spin_unlock_irqrestore(&priv->sta_lock, flags);
> return ret;
> }
> -EXPORT_SYMBOL(iwl_remove_station);
>
> /**
> * iwl_clear_stations_table - Clear the driver's station table
>
>

Reinette


2009-07-30 18:47:45

by Reinette Chatre

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: don't export symbols not needed in other modules

On Thu, 2009-07-30 at 11:36 -0700, Johannes Berg wrote:
> On Thu, 2009-07-30 at 11:28 -0700, reinette chatre wrote:
> > Hi Johannes,
> >
> > On Thu, 2009-07-30 at 02:58 -0700, Johannes Berg wrote:
> > > Even with the split into iwlcore/agn/3945 not all symbols
> > > that cross file boundaries are needed in other modules, a
> > > few are only used within iwlcore, for example.
> >
> > I think in this case we need to be explicit when talking about "need"
> > and "used". Yes, some of these exported symbols are only used within a
> > module and this needs to be fixed. At the same time, some of these may
> > be needed outside, but are just not currently used. Examples of the
> > latter are: iwl_remove_station, iwl_rx_ant_restriction, and
> > iwl_send_card_state. I think this is especially important for
> > iwl_remove_station and iwl_rx_ant_restriction because their partners
> > (iwl_add_station and iwl_tx_ant_restriction) are exported and used and I
> > think it will be clean if they are also, even if they are not currently
> > used.
>
> But they can easily be exported when used. That's done even for
> subsystem symbols, for instance some generic netlink stuff wasn't
> exported until it was needed in wimax.
>
> Is there a problem with adding the export back whenever it's needed?

No. If this is what you want then I think you also need to remove
iwl_rx_ant_restriction.

Reinette



2009-07-30 19:27:24

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: don't export symbols not needed in other modules

On Thu, 2009-07-30 at 11:47 -0700, reinette chatre wrote:

> No. If this is what you want then I think you also need to remove
> iwl_rx_ant_restriction.

Hm, I missed that, I actually have removed as part of my powersave
patch.

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part

2009-07-30 18:37:27

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] iwlwifi: don't export symbols not needed in other modules

On Thu, 2009-07-30 at 11:28 -0700, reinette chatre wrote:
> Hi Johannes,
>
> On Thu, 2009-07-30 at 02:58 -0700, Johannes Berg wrote:
> > Even with the split into iwlcore/agn/3945 not all symbols
> > that cross file boundaries are needed in other modules, a
> > few are only used within iwlcore, for example.
>
> I think in this case we need to be explicit when talking about "need"
> and "used". Yes, some of these exported symbols are only used within a
> module and this needs to be fixed. At the same time, some of these may
> be needed outside, but are just not currently used. Examples of the
> latter are: iwl_remove_station, iwl_rx_ant_restriction, and
> iwl_send_card_state. I think this is especially important for
> iwl_remove_station and iwl_rx_ant_restriction because their partners
> (iwl_add_station and iwl_tx_ant_restriction) are exported and used and I
> think it will be clean if they are also, even if they are not currently
> used.

But they can easily be exported when used. That's done even for
subsystem symbols, for instance some generic netlink stuff wasn't
exported until it was needed in wimax.

Is there a problem with adding the export back whenever it's needed?

johannes


Attachments:
signature.asc (801.00 B)
This is a digitally signed message part