Thread (38 messages) 38 messages, 5 authors, 2018-02-27

Re: [PATCH 6/6] wl1251: Set generated MAC address back to NVS data

flat view

From: Pali Rohár <hidden>
Date: 2016-12-24 18:44:38
Also in: linux-wireless, lkml

On Saturday 24 December 2016 19:17:30 Pavel Machek wrote:
Hi!
quoted
In case there is no valid MAC address kernel generates random one.
This patch propagate this generated MAC address back to NVS data
which will be uploaded to wl1251 chip. So HW would have same MAC
address as linux kernel uses.

 	return 0;
 
 }

+static int wl1251_write_nvs_mac(struct wl1251 *wl)
+{
The name is quite confusing, this sounds like writing into
non-volatile storage.
quoted
+	int i;
+
+	if (wl->nvs_len < 0x24)
+		return -ENODATA;
+
+	/* length is 2 and data address is 0x546c (mask is 0xfffe) */
You don't actually check for the mask.
It is quite complicated. { 0x6d, 0x54 } (= 0x546d) in data represent 
address 0x546c and content are data. You need to apply mask 0xfffe for 
0x546d and you get address where data will be written (so 0x546c).
quoted
+	if (wl->nvs[0x19] != 2 || wl->nvs[0x1a] != 0x6d || wl->nvs[0x1b]
!= 0x54) +		return -EINVAL;
You have two copies of these. Does it make sense to move it to helper
function?
I'm thinking if checks is really needed. But probably moving it to 
separate function is good idea.

-- 
Pali Rohár
pali.rohar@gmail.com

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help