Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69bbc7dc authored by Christian Lamparter's avatar Christian Lamparter Committed by John W. Linville
Browse files

p54: move p54_vdcf_init to the right place.



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: default avatarChristian Lamparter <chunkeey@web.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 6f147926
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -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;
}

@@ -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;