All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: David Lin <dlin@marvell.com>, Kalle Valo <kvalo@codeaurora.org>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	Chor Teck Law <ctlaw@marvell.com>, James Lin <jamesl@marvell.com>,
	Pete Hsieh <peteh@marvell.com>
Subject: Re: [PATCH v9] Add new mac80211 driver mwlwifi.
Date: Thu, 05 Jan 2017 14:58:42 +0100	[thread overview]
Message-ID: <1483624722.4394.21.camel@sipsolutions.net> (raw)
In-Reply-To: <260962939eeb4dbbb6e462cc010aac21@SC-EXCH02.marvell.com>

On Wed, 2016-12-21 at 04:11 +0000, David Lin wrote:
> This patch provides the mwlwifi driver for Marvell 8863, 8864 and
> 8897
> chipsets.
> This driver was developed as part of the openwrt.org project to
> support
> Linksys WRT1900AC and is maintained on https://github.com/kaloz/mwlwi
> fi.

I found some minor things:

 * using kmalloc/memset instead of kzalloc
 * mwl_fwcmd_get_80m_pri_chnl() could use some arithmetic or at least
   switch case consolidation - if it shouldn't even go away entirely
   since mac80211 doesn't really limit you to the primary channel as
   the spec requires it - so the whole purpose of the function seems a
   bit questionable
 * wiphy_err(hw->wiphy, "failed execution\n"); seems like a bit too
   generic (you have that many times - how are you going to tell which
   happened?)
 * rates = sta->supp_rates[NL80211_BAND_5GHZ] << 5;
   is a bit questionable - that 5 should probably be defined (also,
   does that mean you support 1,2, 5.5, 11 and *22MBps*? curious,
   almost nobody does that afaict)
 * a lot of initializations like
   struct mwl_vif *mwl_vif;
   [...]
   mwl_vif = mwl_dev_get_vif(vif);

   could be rolled into a single line of code (which you sometimes do,
   apparently always for "priv" but never for "mwl_vif" or "pcmd"?)
 * "celcius" isn't really spelled that way - and you probably mean
   "temperature" anyway since Celsius is a unit :)
 * typo: firware
 * a bunch of your IE handling structs seem duplicate with ieee80211.h
 * and partially wrong - something with a vendor OUI can't be RSN
   (maybe you meant WPA? though it's not quite clear to me why you need
   this at all!)
 * +#ifdef CONFIG_OF
   +#include <linux/of.h>
   +#endif
   I don't think you have to guard that include ...
 * +#ifdef CONFIG_DEBUG_FS
   +#include "debugfs.h"
   +#endif
   likewise
 * git am also complained about a blank line at EOF


The only thing that really seems questionable to me is the whole beacon
parsing (and apparent rebuilding in firmware?). It's very odd that you
could do that, with a softmac device where all the authentication and
association is handled by hostapd anyway, and you can't possibly
pretend to handle everything hostapd might throw at you - this will
mean that you'll have features hostapd and every other mac80211
supports that you will silently drop afaict - which is rather
unexpected.

First, you're parsing the data obtained from hostapd, in
mwl_fwcmd_parse_beacon(), and then you send them all to the firmware in
mwl_fwcmd_set_ies(), but only the things you actually understood. New
higher-level features you don't understand, or vendor beacon IEs that
aren't WMM, would be completely dropped.

I'm not very happy with that behaviour.

Why does the firmware require this? Why not just pack all IEs into the
pcmd->ie_list_len_proprietary, and leave everything else 0? Or - if
perhaps firmware for some reason requires HT/VHT to be treated
specially, only parse out the ones that are really needed specially and
leave everything else in the ie_list_len_proprietary?

Also, this is dropping all the encryption stuff - even those are
extensible btw, and hostapd might do so. Having the firmware rebuild
those out of out-of-band information is very unexpected for a mac80211
driver.

johannes

  reply	other threads:[~2017-01-05 13:58 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-21  4:11 [PATCH v9] Add new mac80211 driver mwlwifi David Lin
2017-01-05 13:58 ` Johannes Berg [this message]
2017-01-10  1:32   ` David Lin
2017-01-11  9:25     ` Johannes Berg
2017-01-19  1:22       ` David Lin
2017-02-07 19:12 ` Steve deRosier
2017-02-08  2:50   ` [EXT] " David Lin
2017-02-08  3:16   ` David Lin
2017-02-08  6:07   ` Rafał Miłecki
2017-02-08  6:15     ` David Lin
2017-02-08  6:26       ` Steve deRosier
2017-02-08  6:30         ` David Lin
2017-02-08  7:23           ` Rafał Miłecki
2017-02-08  7:28             ` David Lin
2017-02-08  7:44               ` Rafał Miłecki
2017-02-08  7:55                 ` David Lin
2018-11-21  8:24                   ` Rafał Miłecki
2020-05-19 15:12                     ` Pali Rohár
2020-06-03 10:31                       ` Pali Rohár
  -- strict thread matches above, loose matches on Subject: below --
2016-12-21  4:11 David Lin

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=1483624722.4394.21.camel@sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=ctlaw@marvell.com \
    --cc=dlin@marvell.com \
    --cc=jamesl@marvell.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=peteh@marvell.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.