Skip to content

Commit

Permalink
p54: move p54_vdcf_init to the right place.
Browse files Browse the repository at this point in the history
priv->tx_hdr_len is set by the driver _after_ it called p54_init_common.
While this isn't much a problem for any PCI or ISL3887 cards/sticks,
because they don't need any extra header and therefore tx_hdr_len is
zero for them...

Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Christian Lamparter authored and John W. Linville committed Aug 18, 2008
1 parent 6f14792 commit 69bbc7d
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions drivers/net/wireless/p54/p54common.c
Original file line number Diff line number Diff line change
Expand Up @@ -837,10 +837,21 @@ static int p54_start(struct ieee80211_hw *dev)
struct p54_common *priv = dev->priv;
int err;

if (!priv->cached_vdcf) {
priv->cached_vdcf = kzalloc(sizeof(struct p54_tx_control_vdcf)+
priv->tx_hdr_len + sizeof(struct p54_control_hdr),
GFP_KERNEL);

if (!priv->cached_vdcf)
return -ENOMEM;
}

err = priv->open(dev);
if (!err)
priv->mode = IEEE80211_IF_TYPE_MNTR;

p54_init_vdcf(dev);

return err;
}

Expand Down Expand Up @@ -1020,15 +1031,6 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len)
dev->extra_tx_headroom = sizeof(struct p54_control_hdr) + 4 +
sizeof(struct p54_tx_control_allocdata);

priv->cached_vdcf = kzalloc(sizeof(struct p54_tx_control_vdcf) +
priv->tx_hdr_len + sizeof(struct p54_control_hdr), GFP_KERNEL);

if (!priv->cached_vdcf) {
ieee80211_free_hw(dev);
return NULL;
}

p54_init_vdcf(dev);
mutex_init(&priv->conf_mutex);

return dev;
Expand Down

0 comments on commit 69bbc7d

Please sign in to comment.