From: Johannes Berg <johannes@sipsolutions.net>
To: Ajay Singh <ajay.kathat@microchip.com>, linux-wireless@vger.kernel.org
Cc: kvalo@codeaurora.org, gregkh@linuxfoundation.org,
ganesh.krishna@microchip.com, aditya.shankar@microchip.com,
venkateswara.kaja@microchip.com, claudiu.beznea@microchip.com,
adham.abozaeid@microchip.com
Subject: Re: [PATCH 02/19] wilc: add coreconfigurator.c
Date: Mon, 08 Oct 2018 16:16:47 +0200 [thread overview]
Message-ID: <1539008207.3687.53.camel@sipsolutions.net> (raw)
In-Reply-To: <1537957525-11467-3-git-send-email-ajay.kathat@microchip.com> (sfid-20180926_122540_337510_C34E9097)
> +static inline u16 get_beacon_period(u8 *data)
> +{
> + u16 bcn_per;
> +
> + bcn_per = data[0];
> + bcn_per |= (data[1] << 8);
> +
> + return bcn_per;
> +}
Remove and use get_unaligned_le16().
> +static inline u32 get_beacon_timestamp_lo(u8 *data)
> +{
> + u32 time_stamp = 0;
> + u32 index = MAC_HDR_LEN;
> +
> + time_stamp |= data[index++];
> + time_stamp |= (data[index++] << 8);
> + time_stamp |= (data[index++] << 16);
> + time_stamp |= (data[index] << 24);
> +
> + return time_stamp;
> +}
get_unaligned_le32()
> +static inline u32 get_beacon_timestamp_hi(u8 *data)
> +{
> + u32 time_stamp = 0;
> + u32 index = (MAC_HDR_LEN + 4);
> +
> + time_stamp |= data[index++];
> + time_stamp |= (data[index++] << 8);
> + time_stamp |= (data[index++] << 16);
> + time_stamp |= (data[index] << 24);
> +
> + return time_stamp;
> +}
get_unaligned_le32()
> +static inline enum sub_frame_type get_sub_type(u8 *header)
> +{
> + return ((enum sub_frame_type)(header[0] & 0xFC));
> +}
remove, use include/linux/ieee80211.h.
> +static inline u8 get_to_ds(u8 *header)
> +{
> + return (header[1] & 0x01);
> +}
> +
> +static inline u8 get_from_ds(u8 *header)
> +{
> + return ((header[1] & 0x02) >> 1);
> +}
dito
> +static inline void get_address1(u8 *msa, u8 *addr)
> +{
> + memcpy(addr, msa + 4, 6);
> +}
> +
> +static inline void get_address2(u8 *msa, u8 *addr)
> +{
> + memcpy(addr, msa + 10, 6);
> +}
> +
> +static inline void get_address3(u8 *msa, u8 *addr)
you probably shouldn't memcpy() here, that's expensive.
> +static inline void get_bssid(u8 *data, u8 *bssid)
> +{
> + if (get_from_ds(data) == 1)
> + get_address2(data, bssid);
> + else if (get_to_ds(data) == 1)
> + get_address1(data, bssid);
> + else
> + get_address3(data, bssid);
> +}
I just noticed we don't have this in ieee80211.h, but perhaps we should.
I think you should just return a pointer though, there's no point in
memcpy().
> +static inline void get_ssid(u8 *data, u8 *ssid, u8 *p_ssid_len)
> +{
> + u8 i, j, len;
> +
> + len = data[TAG_PARAM_OFFSET + 1];
> + j = TAG_PARAM_OFFSET + 2;
> +
> + if (len >= MAX_SSID_LEN)
> + len = 0;
> +
> + for (i = 0; i < len; i++, j++)
> + ssid[i] = data[j];
> +
> + ssid[len] = '\0';
SSIDs are *NOT* strings, don't pretend they are.
> + *p_ssid_len = len;
> +}
Uh, no, we have helper functions for finding elements.
Again, return something, don't just fill out parameters.
> +static inline u16 get_cap_info(u8 *data)
> +{
> + u16 cap_info = 0;
> + u16 index = MAC_HDR_LEN;
> + enum sub_frame_type st;
> +
> + st = get_sub_type(data);
> +
> + if (st == BEACON || st == PROBE_RSP)
> + index += TIME_STAMP_LEN + BEACON_INTERVAL_LEN;
> +
> + cap_info = data[index];
> + cap_info |= (data[index + 1] << 8);
> +
> + return cap_info;
> +}
Umm, no, ieee80211.h.
> +static inline u16 get_asoc_status(u8 *data)
> +{
> + u16 asoc_status;
> +
> + asoc_status = data[3];
> + return (asoc_status << 8) | data[2];
> +}
I'll just stop here - you need to replace almost all of this file with
ieee80211.h stuff instead.
johannes
next prev parent reply other threads:[~2018-10-08 14:17 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-26 10:25 [RFC 00/19] wilc: added driver for wilc module Ajay Singh
2018-09-26 10:25 ` [PATCH 01/19] wilc: add coreconfigurator.h Ajay Singh
2018-09-26 10:25 ` [PATCH 02/19] wilc: add coreconfigurator.c Ajay Singh
2018-10-08 14:16 ` Johannes Berg [this message]
2018-10-09 9:42 ` Ajay Singh
2018-10-09 10:05 ` Johannes Berg
2018-09-26 10:25 ` [PATCH 03/19] wilc: add host_interface.h Ajay Singh
2018-10-08 14:20 ` Johannes Berg
2018-10-09 10:34 ` Ajay Singh
2018-10-09 10:36 ` Johannes Berg
2018-10-09 11:44 ` Ajay Singh
2018-10-09 11:46 ` Johannes Berg
2018-10-09 12:18 ` Ajay Singh
2018-10-09 18:36 ` Adham.Abozaeid
2018-10-09 19:14 ` Johannes Berg
2018-10-09 20:01 ` Adham.Abozaeid
2018-10-09 20:02 ` Johannes Berg
2018-10-09 20:06 ` Adham.Abozaeid
2018-10-29 14:56 ` Kalle Valo
2018-10-30 3:20 ` Ajay.Kathat
2018-09-26 10:25 ` [PATCH 04/19] wilc: add host_interface.c Ajay Singh
2018-10-08 14:31 ` Johannes Berg
2018-10-10 20:06 ` Adham.Abozaeid
2018-10-11 7:01 ` Johannes Berg
2018-10-12 22:08 ` Adham.Abozaeid
2018-10-18 8:23 ` Johannes Berg
2018-10-18 18:30 ` Adham.Abozaeid
2018-10-19 7:02 ` Johannes Berg
2018-10-19 20:53 ` Adham.Abozaeid
2018-10-29 20:10 ` Johannes Berg
2018-10-29 21:32 ` Adham.Abozaeid
2018-10-29 21:33 ` Johannes Berg
2018-10-11 6:57 ` Ajay Singh
2018-10-10 20:14 ` Johannes Berg
2018-10-12 21:55 ` Adham.Abozaeid
2018-10-18 8:23 ` Johannes Berg
2018-09-26 10:25 ` [PATCH 05/19] wilc: add wilc_wlan_if.h Ajay Singh
2018-10-08 14:33 ` Johannes Berg
2018-10-11 6:59 ` Ajay Singh
2018-09-26 10:25 ` [PATCH 06/19] wilc: add wilc_wlan_cfg.h Ajay Singh
2018-09-26 10:25 ` [PATCH 07/19] wilc: add wilc_wlan_cfg.c Ajay Singh
2018-09-26 10:25 ` [PATCH 08/19] wilc: add wilc_wlan.h Ajay Singh
2018-09-26 10:25 ` [PATCH 09/19] wilc: add wilc_wlan.c Ajay Singh
2018-09-26 10:25 ` [PATCH 10/19] wilc: add wilc_wfi_netdevice.h Ajay Singh
2018-09-26 10:25 ` [PATCH 11/19] wilc: add wilc_wfi_cfgoperations.h Ajay Singh
2018-09-26 10:25 ` [PATCH 12/19] wilc: add wilc_wfi_cfgoperations.c Ajay Singh
2018-10-08 14:57 ` Johannes Berg
2018-10-09 4:23 ` Adham.Abozaeid
2018-10-09 7:55 ` Johannes Berg
2018-10-09 17:15 ` Adham.Abozaeid
2018-10-19 21:47 ` Adham.Abozaeid
2018-10-29 20:11 ` Johannes Berg
2018-10-29 21:43 ` Adham.Abozaeid
2018-09-26 10:25 ` [PATCH 13/19] wilc: add linux_wlan.c Ajay Singh
2018-10-08 14:41 ` Johannes Berg
2018-10-11 7:00 ` Ajay Singh
2018-10-11 7:03 ` Johannes Berg
2018-10-11 7:26 ` Ajay Singh
2018-09-26 10:25 ` [PATCH 14/19] wilc: add linux_mon.c Ajay Singh
2018-10-08 14:44 ` Johannes Berg
2018-10-11 7:12 ` Ajay Singh
2018-10-11 7:15 ` Johannes Berg
2018-09-26 10:25 ` [PATCH 15/19] wilc: add wilc_spi.c Ajay Singh
2018-09-26 10:25 ` [PATCH 16/19] wilc: add wilc_sdio.c Ajay Singh
2018-09-26 10:25 ` [PATCH 17/19] wilc: updated DT device binding for wilc device Ajay Singh
2018-09-26 10:25 ` [PATCH 18/19] wilc: add Makefile and Kconfig files for wilc compilation Ajay Singh
2018-09-26 10:25 ` [PATCH 19/19] wilc: added wilc module compilation in wireless Makefile & Kconfig Ajay Singh
2018-10-06 12:45 ` [RFC 00/19] wilc: added driver for wilc module Kalle Valo
2018-10-08 5:17 ` Ajay Singh
2018-10-08 7:38 ` Kalle Valo
2018-10-08 18:34 ` Adham.Abozaeid
2018-11-15 14:11 ` Kalle Valo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1539008207.3687.53.camel@sipsolutions.net \
--to=johannes@sipsolutions.net \
--cc=adham.abozaeid@microchip.com \
--cc=aditya.shankar@microchip.com \
--cc=ajay.kathat@microchip.com \
--cc=claudiu.beznea@microchip.com \
--cc=ganesh.krishna@microchip.com \
--cc=gregkh@linuxfoundation.org \
--cc=kvalo@codeaurora.org \
--cc=linux-wireless@vger.kernel.org \
--cc=venkateswara.kaja@microchip.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).