Commit fa9abe05 authored by Michael Buesch's avatar Michael Buesch Committed by John W. Linville
Browse files

b43: Don't use memcpy for overlapping areas



It is valid to pass &gphy->rfatt and &gphy->bbatt as rfatt and bbatt
pointer arguments to the function. So we have to use memmove for the
possibly overlapping memory areas.

Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent a505f4ff
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -232,11 +232,12 @@ void b43_set_txpower_g(struct b43_wldev *dev,
	if (unlikely(tx_bias == 0xFF))
		tx_bias = 0;

	/* Save the values for later */
	/* Save the values for later. Use memmove, because it's valid
	 * to pass &gphy->rfatt as rfatt pointer argument. Same for bbatt. */
	gphy->tx_control = tx_control;
	memcpy(&gphy->rfatt, rfatt, sizeof(*rfatt));
	memmove(&gphy->rfatt, rfatt, sizeof(*rfatt));
	gphy->rfatt.with_padmix = !!(tx_control & B43_TXCTL_TXMIX);
	memcpy(&gphy->bbatt, bbatt, sizeof(*bbatt));
	memmove(&gphy->bbatt, bbatt, sizeof(*bbatt));

	if (b43_debug(dev, B43_DBG_XMITPOWER)) {
		b43dbg(dev->wl, "Tuning TX-power to bbatt(%u), "