2007-03-17 12:13:58

by John W. Linville

[permalink] [raw]
Subject: Please pull 'libertas' branch of wireless-2.6

I'm not sure why I still have libertas as a separate branch, but I do.
I don't think this should cause any trouble for you, but I figured
I'd say something in case you were wondering. :-)

Anyway, this is intended for the 'upstream' branch of netdev-2.6.
You already had pulled libertas there when last I checked.

BTW, Pavel's patch is here instead of in another branch because it
depends on changes from the original libertas driver patch.

Thanks,

John

---

The following changes since commit 971a89608a33ab591c85aa00777acd9ad05f9e82:
John W. Linville (1):
Merge branch 'from-linus' into libertas

are found in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git libertas

Pavel Roskin (1):
sparse-annotate radiotap header

Tony Breeds (1):
libertas: use standard kernel macros

drivers/net/wireless/libertas/debugfs.c | 41 ++--------------------
include/net/ieee80211_radiotap.h | 57 ++++++++++++++++---------------
2 files changed, 33 insertions(+), 65 deletions(-)

diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c
index 3ad1e03..51dfd20 100644
--- a/drivers/net/wireless/libertas/debugfs.c
+++ b/drivers/net/wireless/libertas/debugfs.c
@@ -1772,8 +1772,8 @@ void libertas_debugfs_remove_one(wlan_private *priv)

/* debug entry */

-#define item_size(n) (sizeof ((wlan_adapter *)0)->n)
-#define item_addr(n) ((u32) &((wlan_adapter *)0)->n)
+#define item_size(n) (FIELD_SIZEOF(wlan_adapter, n))
+#define item_addr(n) (offsetof(wlan_adapter, n))

struct debug_data {
char name[32];
@@ -1789,40 +1789,7 @@ static struct debug_data items[] = {
{"psstate", item_size(psstate), item_addr(psstate)},
};

-static int num_of_items = sizeof(items) / sizeof(items[0]);
-
-/**
- * @brief convert string to number
- *
- * @param s pointer to numbered string
- * @return converted number from string s
- */
-static int string_to_number(char *s)
-{
- int r = 0;
- int base = 0;
-
- if ((strncmp(s, "0x", 2) == 0) || (strncmp(s, "0X", 2) == 0))
- base = 16;
- else
- base = 10;
-
- if (base == 16)
- s += 2;
-
- for (s = s; *s != 0; s++) {
- if ((*s >= 48) && (*s <= 57))
- r = (r * base) + (*s - 48);
- else if ((*s >= 65) && (*s <= 70))
- r = (r * base) + (*s - 55);
- else if ((*s >= 97) && (*s <= 102))
- r = (r * base) + (*s - 87);
- else
- break;
- }
-
- return r;
-}
+static int num_of_items = ARRAY_SIZE(items);

/**
* @brief proc read function
@@ -1912,7 +1879,7 @@ static int wlan_debugfs_write(struct file *f, const char __user *buf,
if (!p2)
break;
p2++;
- r = string_to_number(p2);
+ r = simple_strtoul(p2, NULL, 0);
if (d[i].size == 1)
*((u8 *) d[i].addr) = (u8) r;
else if (d[i].size == 2)
diff --git a/include/net/ieee80211_radiotap.h b/include/net/ieee80211_radiotap.h
index c6e0d81..f3bc00e 100644
--- a/include/net/ieee80211_radiotap.h
+++ b/include/net/ieee80211_radiotap.h
@@ -66,7 +66,9 @@
*/
#define IEEE80211_RADIOTAP_HDRLEN 64

-/* The radio capture header precedes the 802.11 header. */
+/* The radio capture header precedes the 802.11 header.
+ * All data in the header is little endian on all platforms.
+ */
struct ieee80211_radiotap_header {
u8 it_version; /* Version 0. Only increases
* for drastic changes,
@@ -74,12 +76,12 @@ struct ieee80211_radiotap_header {
* new fields does not count.
*/
u8 it_pad;
- u16 it_len; /* length of the whole
+ __le16 it_len; /* length of the whole
* header in bytes, including
* it_version, it_pad,
* it_len, and data fields.
*/
- u32 it_present; /* A bitmap telling which
+ __le32 it_present; /* A bitmap telling which
* fields are present. Set bit 31
* (0x80000000) to extend the
* bitmap by another 32 bits.
@@ -88,104 +90,103 @@ struct ieee80211_radiotap_header {
*/
};

-/* Name Data type Units
- * ---- --------- -----
+/* Name Data type Units
+ * ---- --------- -----
*
- * IEEE80211_RADIOTAP_TSFT u64 microseconds
+ * IEEE80211_RADIOTAP_TSFT __le64 microseconds
*
* Value in microseconds of the MAC's 64-bit 802.11 Time
* Synchronization Function timer when the first bit of the
* MPDU arrived at the MAC. For received frames, only.
*
- * IEEE80211_RADIOTAP_CHANNEL 2 x u16 MHz, bitmap
+ * IEEE80211_RADIOTAP_CHANNEL 2 x __le16 MHz, bitmap
*
* Tx/Rx frequency in MHz, followed by flags (see below).
*
- * IEEE80211_RADIOTAP_FHSS u16 see below
+ * IEEE80211_RADIOTAP_FHSS __le16 see below
*
* For frequency-hopping radios, the hop set (first byte)
* and pattern (second byte).
*
- * IEEE80211_RADIOTAP_RATE u8 500kb/s
+ * IEEE80211_RADIOTAP_RATE u8 500kb/s
*
* Tx/Rx data rate
*
- * IEEE80211_RADIOTAP_DBM_ANTSIGNAL int8_t decibels from
- * one milliwatt (dBm)
+ * IEEE80211_RADIOTAP_DBM_ANTSIGNAL s8 decibels from
+ * one milliwatt (dBm)
*
* RF signal power at the antenna, decibel difference from
* one milliwatt.
*
- * IEEE80211_RADIOTAP_DBM_ANTNOISE int8_t decibels from
- * one milliwatt (dBm)
+ * IEEE80211_RADIOTAP_DBM_ANTNOISE s8 decibels from
+ * one milliwatt (dBm)
*
* RF noise power at the antenna, decibel difference from one
* milliwatt.
*
- * IEEE80211_RADIOTAP_DB_ANTSIGNAL u8 decibel (dB)
+ * IEEE80211_RADIOTAP_DB_ANTSIGNAL u8 decibel (dB)
*
* RF signal power at the antenna, decibel difference from an
* arbitrary, fixed reference.
*
- * IEEE80211_RADIOTAP_DB_ANTNOISE u8 decibel (dB)
+ * IEEE80211_RADIOTAP_DB_ANTNOISE u8 decibel (dB)
*
* RF noise power at the antenna, decibel difference from an
* arbitrary, fixed reference point.
*
- * IEEE80211_RADIOTAP_LOCK_QUALITY u16 unitless
+ * IEEE80211_RADIOTAP_LOCK_QUALITY __le16 unitless
*
* Quality of Barker code lock. Unitless. Monotonically
* nondecreasing with "better" lock strength. Called "Signal
* Quality" in datasheets. (Is there a standard way to measure
* this?)
*
- * IEEE80211_RADIOTAP_TX_ATTENUATION u16 unitless
+ * IEEE80211_RADIOTAP_TX_ATTENUATION __le16 unitless
*
* Transmit power expressed as unitless distance from max
* power set at factory calibration. 0 is max power.
* Monotonically nondecreasing with lower power levels.
*
- * IEEE80211_RADIOTAP_DB_TX_ATTENUATION u16 decibels (dB)
+ * IEEE80211_RADIOTAP_DB_TX_ATTENUATION __le16 decibels (dB)
*
* Transmit power expressed as decibel distance from max power
* set at factory calibration. 0 is max power. Monotonically
* nondecreasing with lower power levels.
*
- * IEEE80211_RADIOTAP_DBM_TX_POWER int8_t decibels from
- * one milliwatt (dBm)
+ * IEEE80211_RADIOTAP_DBM_TX_POWER s8 decibels from
+ * one milliwatt (dBm)
*
* Transmit power expressed as dBm (decibels from a 1 milliwatt
* reference). This is the absolute power level measured at
* the antenna port.
*
- * IEEE80211_RADIOTAP_FLAGS u8 bitmap
+ * IEEE80211_RADIOTAP_FLAGS u8 bitmap
*
* Properties of transmitted and received frames. See flags
* defined below.
*
- * IEEE80211_RADIOTAP_ANTENNA u8 antenna index
+ * IEEE80211_RADIOTAP_ANTENNA u8 antenna index
*
* Unitless indication of the Rx/Tx antenna for this packet.
* The first antenna is antenna 0.
*
- * IEEE80211_RADIOTAP_RX_FLAGS u_int16_t bitmap
+ * IEEE80211_RADIOTAP_RX_FLAGS __le16 bitmap
*
* Properties of received frames. See flags defined below.
*
- * IEEE80211_RADIOTAP_TX_FLAGS u_int16_t bitmap
+ * IEEE80211_RADIOTAP_TX_FLAGS __le16 bitmap
*
* Properties of transmitted frames. See flags defined below.
*
- * IEEE80211_RADIOTAP_RTS_RETRIES u_int8_t data
+ * IEEE80211_RADIOTAP_RTS_RETRIES u8 data
*
* Number of rts retries a transmitted frame used.
*
- * IEEE80211_RADIOTAP_DATA_RETRIES u_int8_t data
+ * IEEE80211_RADIOTAP_DATA_RETRIES u8 data
*
* Number of unicast retries a transmitted frame used.
*
- *
- * IEEE80211_RADIOTAP_FCS u32 data
+ * IEEE80211_RADIOTAP_FCS __le32 data
*
* FCS from frame in network byte order.
*/
--
John W. Linville
[email protected]


2007-03-03 05:22:19

by Christoph Hellwig

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

Umm, I can't remember the updated driver ever beeig posted for review.
And to be honest I'd be surprised if it's in a good shape already.


2007-03-07 18:18:03

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Mon, Mar 05, 2007 at 02:08:25PM +0000, Christoph Hellwig wrote:
> On Sun, Mar 04, 2007 at 12:36:27PM -0300, Marcelo Tosatti wrote:
> > Hi Christoph,
> >
> > On Sat, Mar 03, 2007 at 05:21:40AM +0000, Christoph Hellwig wrote:
> > > Umm, I can't remember the updated driver ever beeig posted for review.
> >
> > http://lists.openwall.net/netdev/2007/02/10/25
> >
> > > And to be honest I'd be surprised if it's in a good shape already.
> >
> > Constructive comments are welcome... All comments made by Arnd (which
> > were many!) have been addressed.
>
> Comments on that versions from a quick read over it:
>
> - the __le* annotation issue you mentioned in the mail is important.
> We definitvely don't want any new drivers without endianess annotations,
> because there are far too many endianess problems. Even more so
> in a case of a driver like this one that's only tested on LE hardware
> and has LE device endianess.
> - things like 11d.[ch] don't have business of beeing in a driver,
> this should be somewhere in common code.

Most wireless drivers implement 11d internally. We certainly need to
unify the management code, but thats not a merge blocker.

> - there shouldn't be a LICENSE file in individual driver directories,
> especially if it's just plain old GPLv2.
> - please get rid of setting -DFOO flags in the Makefile, just use
> these directly as config symbols.
> - there shouldn't be a README file in the driver directory, this
> should be in Documentation/
> - please don't use wlan_* foo types. a) this should be structs, not
> typedefs, and b) wlan is an utterly generic name for beeing inside
> a driver. Then again most things using this should be inside
> generic code anyway.. (and yeah, all that is because the driver
> copied braindead linux-wlan-ng code that probably needs a major
> revision anyway)
> - there seems to be lots of tabs vs spaces messups
> - please get rid of the ENTER/LEAVE macros

These are useful for debugging. We have removed most of the useless ones
already.

> - there's an awful lot of headers without clear divided responsibilities,
> there should be only a few ones left (internal interfaces and hw
> interface basically)
> - having lowercase names for lots of hw commands is a very bad idea
> for readability
> - please get rid of all your private ioctls and iwpriv stuff
> (should I add !!!! here)

Rationale being? There are a bunch of device private knobs, and iwpriv
is the interface for such configuration. (????)

> - scan.h has very strange almost docbook comments, please convert
> them to real docbook comments and actually run things through
> the tools to make sure it's right.
> - scan.h has vi indentation comment helpers that are contrary to
> linux coding style..
> - the thread.h abstractions are really useless, opencoding them
> would make the code a lot more readable. And make people
> notice it's actually wrong:
> o the return value from kthread_run needs to be checked
> o wlan_deactivate_thread is not needed at all
> o storing and checking the pid should go away
> o there is no need for an additional waitqueue, you can
> just use wake_up_process for kernel threads.
> - most of types.h should not be there but you should be using
> the types from include/linux/*80211*
> - version.h shouldn't exist
> - the radiotap header changes should definitively not be in
> a "add a new driver" diff

Other than this your comments are OK, will address them.

Thanks!


2007-03-08 14:08:10

by Michael Büsch

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Thursday 08 March 2007 03:40, Dan Williams wrote:
> We are unhappy with specific knobs _if_and_only_if_ they duplicate
> functionality that's currently available.
>
> That means, for example, the prism2 WPA ioctls, because WE-19 has
> equivalent functionality. Other examples include many of the madwifi
> ioctls like auth_mode for which there are WEXT calls. Others include
> the ones for creating virtual STAs that are now subsumed by mac80211.
>
> For stuff that's seriously not common among drivers, there's nothing
> else that drivers can do but provide private ioctls.

Exactly.
And, if you add some private tuning knob, you should think about,
if it doesn't really belong to a common place like cfg80211, if other
devices have similiar functionality.

If it's really private to your device, doing some private tuning knob
is perfectly fine. But maybe you should consider sysfs, configfs or something
like that, because iwpriv is going to die with WEXT.

--
Greetings Michael.

2007-03-05 14:08:52

by Christoph Hellwig

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Sun, Mar 04, 2007 at 12:36:27PM -0300, Marcelo Tosatti wrote:
> Hi Christoph,
>
> On Sat, Mar 03, 2007 at 05:21:40AM +0000, Christoph Hellwig wrote:
> > Umm, I can't remember the updated driver ever beeig posted for review.
>
> http://lists.openwall.net/netdev/2007/02/10/25
>
> > And to be honest I'd be surprised if it's in a good shape already.
>
> Constructive comments are welcome... All comments made by Arnd (which
> were many!) have been addressed.

Comments on that versions from a quick read over it:

- the __le* annotation issue you mentioned in the mail is important.
We definitvely don't want any new drivers without endianess annotations,
because there are far too many endianess problems. Even more so
in a case of a driver like this one that's only tested on LE hardware
and has LE device endianess.
- things like 11d.[ch] don't have business of beeing in a driver,
this should be somewhere in common code.
- there shouldn't be a LICENSE file in individual driver directories,
especially if it's just plain old GPLv2.
- please get rid of setting -DFOO flags in the Makefile, just use
these directly as config symbols.
- there shouldn't be a README file in the driver directory, this
should be in Documentation/
- please don't use wlan_* foo types. a) this should be structs, not
typedefs, and b) wlan is an utterly generic name for beeing inside
a driver. Then again most things using this should be inside
generic code anyway.. (and yeah, all that is because the driver
copied braindead linux-wlan-ng code that probably needs a major
revision anyway)
- there seems to be lots of tabs vs spaces messups
- please get rid of the ENTER/LEAVE macros
- there's an awful lot of headers without clear divided responsibilities,
there should be only a few ones left (internal interfaces and hw
interface basically)
- having lowercase names for lots of hw commands is a very bad idea
for readability
- please get rid of all your private ioctls and iwpriv stuff
(should I add !!!! here)
- scan.h has very strange almost docbook comments, please convert
them to real docbook comments and actually run things through
the tools to make sure it's right.
- scan.h has vi indentation comment helpers that are contrary to
linux coding style..
- the thread.h abstractions are really useless, opencoding them
would make the code a lot more readable. And make people
notice it's actually wrong:
o the return value from kthread_run needs to be checked
o wlan_deactivate_thread is not needed at all
o storing and checking the pid should go away
o there is no need for an additional waitqueue, you can
just use wake_up_process for kernel threads.
- most of types.h should not be there but you should be using
the types from include/linux/*80211*
- version.h shouldn't exist
- the radiotap header changes should definitively not be in
a "add a new driver" diff

2007-03-03 01:29:04

by Jeff Garzik

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

John W. Linville wrote:
> Here is the libertas wireless driver for OLPC. It has been beaten into
> shape by a couple of review rounds on netdev and is now mostly good.
> I'm sure Marcelo isn't going anywhere... :-)
>
> This also includes a fixup patch from me to account for the recent
> netdev class_device -> device changes. You probably want Marcelo to
> bless it before you pull into the upstream branch of netdev-2.6.
>
> Thanks,
>
> John
>
> ---
>
> The following changes since commit c8f71b01a50597e298dc3214a2f2be7b8d31170c:
> Linus Torvalds (1):
> Linux 2.6.21-rc1
>
> are found in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git libertas
>
> John W. Linville (1):
> libertas: fix build breakage from netdev class_device -> device
>
> Marcelo Tosatti (1):
> Marvell Libertas 8388 802.11b/g USB driver
>
> drivers/net/wireless/Kconfig | 13 +
> drivers/net/wireless/Makefile | 1 +
> drivers/net/wireless/libertas/11d.c | 754 ++++++++
> drivers/net/wireless/libertas/11d.h | 105 ++
> drivers/net/wireless/libertas/LICENSE | 16 +
> drivers/net/wireless/libertas/Makefile | 21 +
> drivers/net/wireless/libertas/README | 1044 +++++++++++
> drivers/net/wireless/libertas/assoc.c | 588 ++++++
> drivers/net/wireless/libertas/assoc.h | 30 +
> drivers/net/wireless/libertas/cmd.c | 1958 ++++++++++++++++++++
> drivers/net/wireless/libertas/cmdresp.c | 1031 +++++++++++
> drivers/net/wireless/libertas/debugfs.c | 1968 ++++++++++++++++++++
> drivers/net/wireless/libertas/debugfs.h | 6 +
> drivers/net/wireless/libertas/decl.h | 83 +
> drivers/net/wireless/libertas/defs.h | 369 ++++
> drivers/net/wireless/libertas/dev.h | 403 ++++
> drivers/net/wireless/libertas/ethtool.c | 184 ++
> drivers/net/wireless/libertas/fw.c | 361 ++++
> drivers/net/wireless/libertas/fw.h | 13 +
> drivers/net/wireless/libertas/host.h | 338 ++++
> drivers/net/wireless/libertas/hostcmd.h | 693 +++++++
> drivers/net/wireless/libertas/if_bootcmd.c | 38 +
> drivers/net/wireless/libertas/if_usb.c | 952 ++++++++++
> drivers/net/wireless/libertas/if_usb.h | 109 ++
> drivers/net/wireless/libertas/ioctl.c | 2500 +++++++++++++++++++++++++
> drivers/net/wireless/libertas/join.c | 1055 +++++++++++
> drivers/net/wireless/libertas/join.h | 64 +
> drivers/net/wireless/libertas/main.c | 1258 +++++++++++++
> drivers/net/wireless/libertas/radiotap.h | 57 +
> drivers/net/wireless/libertas/rx.c | 459 +++++
> drivers/net/wireless/libertas/sbi.h | 40 +
> drivers/net/wireless/libertas/scan.c | 2044 ++++++++++++++++++++
> drivers/net/wireless/libertas/scan.h | 216 +++
> drivers/net/wireless/libertas/thread.h | 52 +
> drivers/net/wireless/libertas/tx.c | 285 +++
> drivers/net/wireless/libertas/types.h | 289 +++
> drivers/net/wireless/libertas/version.h | 8 +
> drivers/net/wireless/libertas/wext.c | 2769 ++++++++++++++++++++++++++++
> drivers/net/wireless/libertas/wext.h | 147 ++
> include/net/ieee80211_radiotap.h | 31 +-
> 40 files changed, 22351 insertions(+), 1 deletions(-)
> create mode 100644 drivers/net/wireless/libertas/11d.c
> create mode 100644 drivers/net/wireless/libertas/11d.h
> create mode 100644 drivers/net/wireless/libertas/LICENSE
> create mode 100644 drivers/net/wireless/libertas/Makefile
> create mode 100644 drivers/net/wireless/libertas/README
> create mode 100644 drivers/net/wireless/libertas/assoc.c
> create mode 100644 drivers/net/wireless/libertas/assoc.h
> create mode 100644 drivers/net/wireless/libertas/cmd.c
> create mode 100644 drivers/net/wireless/libertas/cmdresp.c
> create mode 100644 drivers/net/wireless/libertas/debugfs.c
> create mode 100644 drivers/net/wireless/libertas/debugfs.h
> create mode 100644 drivers/net/wireless/libertas/decl.h
> create mode 100644 drivers/net/wireless/libertas/defs.h
> create mode 100644 drivers/net/wireless/libertas/dev.h
> create mode 100644 drivers/net/wireless/libertas/ethtool.c
> create mode 100644 drivers/net/wireless/libertas/fw.c
> create mode 100644 drivers/net/wireless/libertas/fw.h
> create mode 100644 drivers/net/wireless/libertas/host.h
> create mode 100644 drivers/net/wireless/libertas/hostcmd.h
> create mode 100644 drivers/net/wireless/libertas/if_bootcmd.c
> create mode 100644 drivers/net/wireless/libertas/if_usb.c
> create mode 100644 drivers/net/wireless/libertas/if_usb.h
> create mode 100644 drivers/net/wireless/libertas/ioctl.c
> create mode 100644 drivers/net/wireless/libertas/join.c
> create mode 100644 drivers/net/wireless/libertas/join.h
> create mode 100644 drivers/net/wireless/libertas/main.c
> create mode 100644 drivers/net/wireless/libertas/radiotap.h
> create mode 100644 drivers/net/wireless/libertas/rx.c
> create mode 100644 drivers/net/wireless/libertas/sbi.h
> create mode 100644 drivers/net/wireless/libertas/scan.c
> create mode 100644 drivers/net/wireless/libertas/scan.h
> create mode 100644 drivers/net/wireless/libertas/thread.h
> create mode 100644 drivers/net/wireless/libertas/tx.c
> create mode 100644 drivers/net/wireless/libertas/types.h
> create mode 100644 drivers/net/wireless/libertas/version.h
> create mode 100644 drivers/net/wireless/libertas/wext.c
> create mode 100644 drivers/net/wireless/libertas/wext.h

pulled into #upstream


2007-03-08 02:38:31

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Wed, 2007-03-07 at 22:24 +0000, Christoph Hellwig wrote:
> On Wed, Mar 07, 2007 at 03:16:38PM -0300, Marcelo Tosatti wrote:
> > > - please get rid of the ENTER/LEAVE macros
> >
> > These are useful for debugging. We have removed most of the useless ones
> > already.
>
> We've refused this on a lot of drivers. If you really need this kind
> of debugging talk to acme to use a variant of ostra for this.
>
> > > - please get rid of all your private ioctls and iwpriv stuff
> > > (should I add !!!! here)
> >
> > Rationale being? There are a bunch of device private knobs, and iwpriv
> > is the interface for such configuration. (????)
>
> If you read netdev we're very very unhappy about device specific knobs,
> as they are really painful to support. You should also look at the
> cfg80211 threads on why ioctls are really bad for moving to a knew
> non-wext, non-ioctl config mechanism. And for why iwpriv is particularly
> bad look about the posts about the wext compat issues.

We are unhappy with specific knobs _if_and_only_if_ they duplicate
functionality that's currently available.

That means, for example, the prism2 WPA ioctls, because WE-19 has
equivalent functionality. Other examples include many of the madwifi
ioctls like auth_mode for which there are WEXT calls. Others include
the ones for creating virtual STAs that are now subsumed by mac80211.

For stuff that's seriously not common among drivers, there's nothing
else that drivers can do but provide private ioctls.

Dan



2007-03-07 22:24:39

by Christoph Hellwig

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Wed, Mar 07, 2007 at 03:16:38PM -0300, Marcelo Tosatti wrote:
> > - please get rid of the ENTER/LEAVE macros
>
> These are useful for debugging. We have removed most of the useless ones
> already.

We've refused this on a lot of drivers. If you really need this kind
of debugging talk to acme to use a variant of ostra for this.

> > - please get rid of all your private ioctls and iwpriv stuff
> > (should I add !!!! here)
>
> Rationale being? There are a bunch of device private knobs, and iwpriv
> is the interface for such configuration. (????)

If you read netdev we're very very unhappy about device specific knobs,
as they are really painful to support. You should also look at the
cfg80211 threads on why ioctls are really bad for moving to a knew
non-wext, non-ioctl config mechanism. And for why iwpriv is particularly
bad look about the posts about the wext compat issues.


2007-03-08 08:31:46

by Christoph Hellwig

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Wed, Mar 07, 2007 at 09:40:51PM -0500, Dan Williams wrote:
> That means, for example, the prism2 WPA ioctls, because WE-19 has
> equivalent functionality. Other examples include many of the madwifi
> ioctls like auth_mode for which there are WEXT calls. Others include
> the ones for creating virtual STAs that are now subsumed by mac80211.
>
> For stuff that's seriously not common among drivers, there's nothing
> else that drivers can do but provide private ioctls.

No, we're more than unhappy with private knobs in general. Each and
every of them needs an good explanation on

a) why it's needed
b) why you can use an existing common interface
c) why it doesn't make sense to add a new common interface

see all the discussion on this on say netdev or linux-scsi.

Realize it, private interfaces are really bad, it means you need
special userspace for a single driver, that's exactly the thing
we try to avoid at all cost.


2007-03-04 15:36:53

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

Hi Christoph,

On Sat, Mar 03, 2007 at 05:21:40AM +0000, Christoph Hellwig wrote:
> Umm, I can't remember the updated driver ever beeig posted for review.

http://lists.openwall.net/netdev/2007/02/10/25

> And to be honest I'd be surprised if it's in a good shape already.

Constructive comments are welcome... All comments made by Arnd (which
were many!) have been addressed.


2007-05-09 21:42:06

by Jeff Garzik

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

Dan Williams wrote:
> I can fix those up; but setting KBUILD_VERBOSE=1 and recompiling doesn't
> show any of them in current libertas-2.6; -Wall is definitely defined.
> Is there another way to enable something give yet more verbose debug
> output?


The copious libertas warnings are present in vanilla upstream
linux-2.6.git.

Just do "make allmodconfig && make -sj4".

Jeff


P.S. Make sure libertas is free of sparse warnings, as all drivers
should be. Read Documentation/sparse.txt.

Jeff




2007-05-07 10:41:40

by Christoph Hellwig

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Sat, Mar 03, 2007 at 05:21:40AM +0000, Christoph Hellwig wrote:
> Umm, I can't remember the updated driver ever beeig posted for review.
> And to be honest I'd be surprised if it's in a good shape already.

Of course it's not anywhere near good shape. Almost all items from my
review were completely ignored, and we have another totoally substandard
wireless driver with crappy thread handling, a huge number of broken private
ioctls and partially absymal codingstyle.

And I didn't even get a reply to my mail addressing the concerns above.

2007-05-09 01:23:47

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Tue, 2007-05-08 at 20:41 -0300, Marcelo Tosatti wrote:
> On Tue, May 08, 2007 at 06:40:54PM -0400, Jeff Garzik wrote:
> > Dan Williams wrote:
> > >I'll audit the list of ioctls and remove ones that may be objectionable,
> > >and we'll go back through them after 2.6.22 and add back in ones that
> > >are actually required. Keep the API/ABI small and expand if necessary.
> > >What's the timeframe required here? Linville said a few days at the
> > >most.
> >
> > Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
> > two after merge window opens.
> >
> > But even if you miss -rc1, we MUST get in the ioctl removal before
> > 2.6.22 release. This is certainly exception to the "nothing but bug
> > fixes" rule -- or perhaps it is following the rule, if you consider the
> > ioctls' existence a bug :)
> >
> > Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
> > as I noted, lower priority than serious stuff like ioctl consideration.
>
> There is also a bunch of updates pending. I'm sending them over this
> week.
>
> Dan: I'll be sending everything thats currently in our tree but not
> mainline.

I'm going through the ioctls as we speak... what else was pending?
Louis has a few on libertas-dev list. We also need to pull wireless-2.6
into libertas before we send linville a pull request, I think.

Dan



2007-05-08 22:41:15

by Jeff Garzik

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

Dan Williams wrote:
> I'll audit the list of ioctls and remove ones that may be objectionable,
> and we'll go back through them after 2.6.22 and add back in ones that
> are actually required. Keep the API/ABI small and expand if necessary.
> What's the timeframe required here? Linville said a few days at the
> most.

Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
two after merge window opens.

But even if you miss -rc1, we MUST get in the ioctl removal before
2.6.22 release. This is certainly exception to the "nothing but bug
fixes" rule -- or perhaps it is following the rule, if you consider the
ioctls' existence a bug :)

Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
as I noted, lower priority than serious stuff like ioctl consideration.

Jeff



2007-05-08 09:47:35

by Pekka Enberg

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

On 5/7/07, Jeff Garzik <[email protected]> wrote:
> Open source is about release early, release often. Not "hide code in a
> dark corner until Christoph thinks it is perfect." We have high
> standards for upstream merged code, but that standard is not perfection.

Please. This has nothing to do with Christoph. (1) the driver seems to
break every Linux coding style convention known to man and (2) adds a
new ABI with bunch of ioctls() that apparently haven't been reviewed
properly. That's just not acceptable for mainline kernel!

Pekka

2007-05-07 14:33:25

by John W. Linville

[permalink] [raw]
Subject: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

On Mon, May 07, 2007 at 08:03:43AM -0400, Dan Williams wrote:
> On Mon, 2007-05-07 at 11:41 +0100, Christoph Hellwig wrote:

> > Of course it's not anywhere near good shape. Almost all items from my
> > review were completely ignored, and we have another totoally substandard
> > wireless driver with crappy thread handling, a huge number of broken private
> > ioctls and partially absymal codingstyle.

> I've already updated libertas-2.6 git with a ton of updates for this.
>
> In any case, lets push off any merge until 2.6.23 so the rest of the
> comments can be dealt with:

Alright...Jeff, would you please pull the following branch for upstream ASAP:

git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git revert-libertas

Thanks,

John
--
John W. Linville
[email protected]

2007-05-08 20:56:09

by Jeff Garzik

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

David Miller wrote:
> From: "Pekka Enberg" <[email protected]>
>> On 5/7/07, Jeff Garzik <[email protected]> wrote:
>>> Open source is about release early, release often. Not "hide code in a
>>> dark corner until Christoph thinks it is perfect." We have high
>>> standards for upstream merged code, but that standard is not perfection.
>> Please. This has nothing to do with Christoph. (1) the driver seems to
>> break every Linux coding style convention known to man and (2) adds a
>> new ABI with bunch of ioctls() that apparently haven't been reviewed
>> properly. That's just not acceptable for mainline kernel!

> I completely agree, these things should be corrected and if the the
> author is being totally unresponsive to Christoph's review that's even
> worse.

Um, the maintainer replied yesterday morning[1] that libertas-2.6.git
has already been updated for these requests, will be updated some more,
and overall was responsive to the entire list of Christoph requests.

I'm mainly concerned with removing the unnecessary ioctls before 2.6.22
release, since that affects userspace. The vast majority of other stuff
is cosmetic, which is being worked on, but lower priority in my book.

Jeff


[1] Message-ID <[email protected]>

2007-05-09 21:38:24

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Wed, 2007-05-09 at 14:25 -0700, Randy Dunlap wrote:
> On Tue, 08 May 2007 21:27:00 -0400 Dan Williams wrote:
>
> > On Tue, 2007-05-08 at 20:41 -0300, Marcelo Tosatti wrote:
> > > On Tue, May 08, 2007 at 06:40:54PM -0400, Jeff Garzik wrote:
> > > > Dan Williams wrote:
> > > > >I'll audit the list of ioctls and remove ones that may be objectionable,
> > > > >and we'll go back through them after 2.6.22 and add back in ones that
> > > > >are actually required. Keep the API/ABI small and expand if necessary.
> > > > >What's the timeframe required here? Linville said a few days at the
> > > > >most.
> > > >
> > > > Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
> > > > two after merge window opens.
> > > >
> > > > But even if you miss -rc1, we MUST get in the ioctl removal before
> > > > 2.6.22 release. This is certainly exception to the "nothing but bug
> > > > fixes" rule -- or perhaps it is following the rule, if you consider the
> > > > ioctls' existence a bug :)
> > > >
> > > > Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
> > > > as I noted, lower priority than serious stuff like ioctl consideration.
> > >
> > > There is also a bunch of updates pending. I'm sending them over this
> > > week.
> > >
> > > Dan: I'll be sending everything thats currently in our tree but not
> > > mainline.
> >
> > I'm going through the ioctls as we speak... what else was pending?
>
> All of the printk format warnings & cast warnings from 2.6.21-mm2 ??

I can fix those up; but setting KBUILD_VERBOSE=1 and recompiling doesn't
show any of them in current libertas-2.6; -Wall is definitely defined.
Is there another way to enable something give yet more verbose debug
output?

Thanks,
Dan

>
> drivers/net/wireless/libertas/rx.c: In function 'libertas_process_rxed_packet':
> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
> drivers/net/wireless/libertas/rx.c: In function 'process_rxed_802_11_packet':
> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
> drivers/net/wireless/libertas/tx.c: In function 'SendSinglePacket':
> drivers/net/wireless/libertas/tx.c:81: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> drivers/net/wireless/libertas/cmd.c: In function 'libertas_queue_cmd':
> drivers/net/wireless/libertas/cmd.c:950: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/cmd.c: In function 'DownloadcommandToStation':
> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/cmd.c: In function 'libertas_prepare_and_send_command':
> drivers/net/wireless/libertas/cmd.c:1177: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/scan.c: In function 'InterpretBSSDescriptionWithIE':
> drivers/net/wireless/libertas/scan.c:1118: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> drivers/net/wireless/libertas/scan.c: In function 'libertas_get_scan':
> drivers/net/wireless/libertas/scan.c:1586: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'
> drivers/net/wireless/libertas/join.c: In function 'libertas_cmd_80211_ad_hoc_join':
> drivers/net/wireless/libertas/join.c:789: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_linkmode_ioctl':
> drivers/net/wireless/libertas/ioctl.c:696: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_radiomode_ioctl':
> drivers/net/wireless/libertas/ioctl.c:728: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_debugmode_ioctl':
> drivers/net/wireless/libertas/ioctl.c:757: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_cleanup_ioctl':
> drivers/net/wireless/libertas/ioctl.c:1779: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_time_ioctl':
> drivers/net/wireless/libertas/ioctl.c:1810: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_mesh_get_ttl_ioctl':
> drivers/net/wireless/libertas/ioctl.c:1839: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/ioctl.c: In function 'libertas_do_ioctl':
> drivers/net/wireless/libertas/ioctl.c:1947: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/ioctl.c:2025: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/ioctl.c:2171: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/ioctl.c:2188: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/ioctl.c:2192: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/ioctl.c:2196: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_parse_ssid':
> drivers/net/wireless/libertas/debugfs.c:279: warning: comparison of distinct pointer types lacks a cast
> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_read':
> drivers/net/wireless/libertas/debugfs.c:1823: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/debugfs.c:1825: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/debugfs.c:1827: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_write':
> drivers/net/wireless/libertas/debugfs.c:1884: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/debugfs.c:1886: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/debugfs.c:1888: warning: cast to pointer from integer of different size
> drivers/net/wireless/libertas/debugfs.c: At top level:
> drivers/net/wireless/libertas/debugfs.c:1900: warning: initialization from incompatible pointer type
> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_debug_init':
> drivers/net/wireless/libertas/debugfs.c:1919: warning: cast from pointer to integer of different size
> drivers/net/wireless/libertas/if_usb.c: In function '__if_usb_submit_rx_urb':
> drivers/net/wireless/libertas/if_usb.c:393: warning: passing argument 4 of 'usb_fill_bulk_urb' makes pointer from integer without a cast
>
>
>
>
> > Louis has a few on libertas-dev list. We also need to pull wireless-2.6
> > into libertas before we send linville a pull request, I think.
>
>
> ---
> ~Randy
> *** Remember to use Documentation/SubmitChecklist when testing your code ***


2007-05-08 20:27:37

by David Miller

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

From: "Pekka Enberg" <[email protected]>
Date: Tue, 8 May 2007 12:47:34 +0300

> On 5/7/07, Jeff Garzik <[email protected]> wrote:
> > Open source is about release early, release often. Not "hide code in a
> > dark corner until Christoph thinks it is perfect." We have high
> > standards for upstream merged code, but that standard is not perfection.
>
> Please. This has nothing to do with Christoph. (1) the driver seems to
> break every Linux coding style convention known to man and (2) adds a
> new ABI with bunch of ioctls() that apparently haven't been reviewed
> properly. That's just not acceptable for mainline kernel!

I completely agree, these things should be corrected and if the the
author is being totally unresponsive to Christoph's review that's even
worse.

Every piece of code that I've written that Christoph has reviewed has
become significantly better because of his review.

2007-05-08 21:00:20

by Jeff Garzik

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

Nick Piggin wrote:
> Two things on top of a lot of people's pet peeves list are lack of
> good review bandwidth, and poor driver code! So it is sad this was
> merged without Christoph's comments being addressed. "it works for
> me, we can fix it later" is probably a big reason for quality
> problems of some parts of the kernel.
>
> As for Christoph's idea of perfection... it usually isn't a bad
> thing. And he is quite reasonable if you explain your good reason
> to disagree or do something differently. The attitude of ignoring
> comments can be really demotivating for a reviewer.

I guess it's a good thing that the maintainer was not ignoring the
review comments, then...

(please review the thread before replying, next time)

Jeff



2007-05-09 21:21:44

by Randy Dunlap

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Tue, 08 May 2007 21:27:00 -0400 Dan Williams wrote:

> On Tue, 2007-05-08 at 20:41 -0300, Marcelo Tosatti wrote:
> > On Tue, May 08, 2007 at 06:40:54PM -0400, Jeff Garzik wrote:
> > > Dan Williams wrote:
> > > >I'll audit the list of ioctls and remove ones that may be objectionable,
> > > >and we'll go back through them after 2.6.22 and add back in ones that
> > > >are actually required. Keep the API/ABI small and expand if necessary.
> > > >What's the timeframe required here? Linville said a few days at the
> > > >most.
> > >
> > > Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
> > > two after merge window opens.
> > >
> > > But even if you miss -rc1, we MUST get in the ioctl removal before
> > > 2.6.22 release. This is certainly exception to the "nothing but bug
> > > fixes" rule -- or perhaps it is following the rule, if you consider the
> > > ioctls' existence a bug :)
> > >
> > > Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
> > > as I noted, lower priority than serious stuff like ioctl consideration.
> >
> > There is also a bunch of updates pending. I'm sending them over this
> > week.
> >
> > Dan: I'll be sending everything thats currently in our tree but not
> > mainline.
>
> I'm going through the ioctls as we speak... what else was pending?

All of the printk format warnings & cast warnings from 2.6.21-mm2 ??


drivers/net/wireless/libertas/rx.c: In function 'libertas_process_rxed_packet':
drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
drivers/net/wireless/libertas/rx.c: In function 'process_rxed_802_11_packet':
drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
drivers/net/wireless/libertas/tx.c: In function 'SendSinglePacket':
drivers/net/wireless/libertas/tx.c:81: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
drivers/net/wireless/libertas/cmd.c: In function 'libertas_queue_cmd':
drivers/net/wireless/libertas/cmd.c:950: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/cmd.c: In function 'DownloadcommandToStation':
drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/cmd.c: In function 'libertas_prepare_and_send_command':
drivers/net/wireless/libertas/cmd.c:1177: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/scan.c: In function 'InterpretBSSDescriptionWithIE':
drivers/net/wireless/libertas/scan.c:1118: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
drivers/net/wireless/libertas/scan.c: In function 'libertas_get_scan':
drivers/net/wireless/libertas/scan.c:1586: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'
drivers/net/wireless/libertas/join.c: In function 'libertas_cmd_80211_ad_hoc_join':
drivers/net/wireless/libertas/join.c:789: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_linkmode_ioctl':
drivers/net/wireless/libertas/ioctl.c:696: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_radiomode_ioctl':
drivers/net/wireless/libertas/ioctl.c:728: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_debugmode_ioctl':
drivers/net/wireless/libertas/ioctl.c:757: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_cleanup_ioctl':
drivers/net/wireless/libertas/ioctl.c:1779: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_time_ioctl':
drivers/net/wireless/libertas/ioctl.c:1810: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/ioctl.c: In function 'wlan_mesh_get_ttl_ioctl':
drivers/net/wireless/libertas/ioctl.c:1839: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/ioctl.c: In function 'libertas_do_ioctl':
drivers/net/wireless/libertas/ioctl.c:1947: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/ioctl.c:2025: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/ioctl.c:2171: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/ioctl.c:2188: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/ioctl.c:2192: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/ioctl.c:2196: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/debugfs.c: In function 'libertas_parse_ssid':
drivers/net/wireless/libertas/debugfs.c:279: warning: comparison of distinct pointer types lacks a cast
drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_read':
drivers/net/wireless/libertas/debugfs.c:1823: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/debugfs.c:1825: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/debugfs.c:1827: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_write':
drivers/net/wireless/libertas/debugfs.c:1884: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/debugfs.c:1886: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/debugfs.c:1888: warning: cast to pointer from integer of different size
drivers/net/wireless/libertas/debugfs.c: At top level:
drivers/net/wireless/libertas/debugfs.c:1900: warning: initialization from incompatible pointer type
drivers/net/wireless/libertas/debugfs.c: In function 'libertas_debug_init':
drivers/net/wireless/libertas/debugfs.c:1919: warning: cast from pointer to integer of different size
drivers/net/wireless/libertas/if_usb.c: In function '__if_usb_submit_rx_urb':
drivers/net/wireless/libertas/if_usb.c:393: warning: passing argument 4 of 'usb_fill_bulk_urb' makes pointer from integer without a cast




> Louis has a few on libertas-dev list. We also need to pull wireless-2.6
> into libertas before we send linville a pull request, I think.


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-05-10 16:54:03

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Wed, 2007-05-09 at 14:46 -0700, Randy Dunlap wrote:
> Dan Williams wrote:
> > On Wed, 2007-05-09 at 14:25 -0700, Randy Dunlap wrote:
> >> On Tue, 08 May 2007 21:27:00 -0400 Dan Williams wrote:
> >>
> >>> On Tue, 2007-05-08 at 20:41 -0300, Marcelo Tosatti wrote:
> >>>> On Tue, May 08, 2007 at 06:40:54PM -0400, Jeff Garzik wrote:
> >>>>> Dan Williams wrote:
> >>>>>> I'll audit the list of ioctls and remove ones that may be objectionable,
> >>>>>> and we'll go back through them after 2.6.22 and add back in ones that
> >>>>>> are actually required. Keep the API/ABI small and expand if necessary.
> >>>>>> What's the timeframe required here? Linville said a few days at the
> >>>>>> most.
> >>>>> Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
> >>>>> two after merge window opens.
> >>>>>
> >>>>> But even if you miss -rc1, we MUST get in the ioctl removal before
> >>>>> 2.6.22 release. This is certainly exception to the "nothing but bug
> >>>>> fixes" rule -- or perhaps it is following the rule, if you consider the
> >>>>> ioctls' existence a bug :)
> >>>>>
> >>>>> Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
> >>>>> as I noted, lower priority than serious stuff like ioctl consideration.
> >>>> There is also a bunch of updates pending. I'm sending them over this
> >>>> week.
> >>>>
> >>>> Dan: I'll be sending everything thats currently in our tree but not
> >>>> mainline.
> >>> I'm going through the ioctls as we speak... what else was pending?
> >> All of the printk format warnings & cast warnings from 2.6.21-mm2 ??
> >
> > I can fix those up; but setting KBUILD_VERBOSE=1 and recompiling doesn't
> > show any of them in current libertas-2.6; -Wall is definitely defined.
> > Is there another way to enable something give yet more verbose debug
> > output?
>
> No, I think that it's just host arch. and/or gcc dependent.
>
> I built on x86_64. Can you do that?

Trying to scrape one up. Should be doable by the end of today.

Dan

>
> > Thanks,
> > Dan
> >
> >> drivers/net/wireless/libertas/rx.c: In function 'libertas_process_rxed_packet':
> >> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> >> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
> >> drivers/net/wireless/libertas/rx.c: In function 'process_rxed_802_11_packet':
> >> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> >> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
> >> drivers/net/wireless/libertas/tx.c: In function 'SendSinglePacket':
> >> drivers/net/wireless/libertas/tx.c:81: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> >> drivers/net/wireless/libertas/cmd.c: In function 'libertas_queue_cmd':
> >> drivers/net/wireless/libertas/cmd.c:950: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/cmd.c: In function 'DownloadcommandToStation':
> >> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/cmd.c: In function 'libertas_prepare_and_send_command':
> >> drivers/net/wireless/libertas/cmd.c:1177: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/scan.c: In function 'InterpretBSSDescriptionWithIE':
> >> drivers/net/wireless/libertas/scan.c:1118: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> >> drivers/net/wireless/libertas/scan.c: In function 'libertas_get_scan':
> >> drivers/net/wireless/libertas/scan.c:1586: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'
> >> drivers/net/wireless/libertas/join.c: In function 'libertas_cmd_80211_ad_hoc_join':
> >> drivers/net/wireless/libertas/join.c:789: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_linkmode_ioctl':
> >> drivers/net/wireless/libertas/ioctl.c:696: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_radiomode_ioctl':
> >> drivers/net/wireless/libertas/ioctl.c:728: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_debugmode_ioctl':
> >> drivers/net/wireless/libertas/ioctl.c:757: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_cleanup_ioctl':
> >> drivers/net/wireless/libertas/ioctl.c:1779: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_time_ioctl':
> >> drivers/net/wireless/libertas/ioctl.c:1810: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_mesh_get_ttl_ioctl':
> >> drivers/net/wireless/libertas/ioctl.c:1839: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/ioctl.c: In function 'libertas_do_ioctl':
> >> drivers/net/wireless/libertas/ioctl.c:1947: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/ioctl.c:2025: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/ioctl.c:2171: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/ioctl.c:2188: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/ioctl.c:2192: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/ioctl.c:2196: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_parse_ssid':
> >> drivers/net/wireless/libertas/debugfs.c:279: warning: comparison of distinct pointer types lacks a cast
> >> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_read':
> >> drivers/net/wireless/libertas/debugfs.c:1823: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/debugfs.c:1825: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/debugfs.c:1827: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_write':
> >> drivers/net/wireless/libertas/debugfs.c:1884: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/debugfs.c:1886: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/debugfs.c:1888: warning: cast to pointer from integer of different size
> >> drivers/net/wireless/libertas/debugfs.c: At top level:
> >> drivers/net/wireless/libertas/debugfs.c:1900: warning: initialization from incompatible pointer type
> >> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_debug_init':
> >> drivers/net/wireless/libertas/debugfs.c:1919: warning: cast from pointer to integer of different size
> >> drivers/net/wireless/libertas/if_usb.c: In function '__if_usb_submit_rx_urb':
> >> drivers/net/wireless/libertas/if_usb.c:393: warning: passing argument 4 of 'usb_fill_bulk_urb' makes pointer from integer without a cast
> >>
> >>
> >>
> >>
> >>> Louis has a few on libertas-dev list. We also need to pull wireless-2.6
> >>> into libertas before we send linville a pull request, I think.
>
>


2007-05-07 16:03:00

by John W. Linville

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

On Mon, May 07, 2007 at 11:22:34AM -0400, Jeff Garzik wrote:

> Open source is about release early, release often. Not "hide code in a
> dark corner until Christoph thinks it is perfect." We have high
> standards for upstream merged code, but that standard is not perfection.
> Perfect is the enemy of good.
>
> I would rather see the libertas-2.6 git changes pulled into upstream,
> and am not inclined to revert a WORKING DRIVER at this point, a driver
> that is actively maintained and has seen quite a bit of improvement
> since it initially appeared.

Perhaps I was a bit hasty. Given Dan's response I thought that I
had missed something.

But, you are right -- the driver works now, and Dan and company are
sure to be around to keep working on it.

> Plus, that leaves the kernel history less polluted.

Consider the request withdrawn.

Thanks,

John
--
John W. Linville
[email protected]

2007-05-08 21:26:07

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Tue, 2007-05-08 at 16:55 -0400, Jeff Garzik wrote:
> David Miller wrote:
> > From: "Pekka Enberg" <[email protected]>
> >> On 5/7/07, Jeff Garzik <[email protected]> wrote:
> >>> Open source is about release early, release often. Not "hide code in a
> >>> dark corner until Christoph thinks it is perfect." We have high
> >>> standards for upstream merged code, but that standard is not perfection.
> >> Please. This has nothing to do with Christoph. (1) the driver seems to
> >> break every Linux coding style convention known to man and (2) adds a
> >> new ABI with bunch of ioctls() that apparently haven't been reviewed
> >> properly. That's just not acceptable for mainline kernel!
>
> > I completely agree, these things should be corrected and if the the
> > author is being totally unresponsive to Christoph's review that's even
> > worse.
>
> Um, the maintainer replied yesterday morning[1] that libertas-2.6.git
> has already been updated for these requests, will be updated some more,
> and overall was responsive to the entire list of Christoph requests.
>
> I'm mainly concerned with removing the unnecessary ioctls before 2.6.22
> release, since that affects userspace. The vast majority of other stuff
> is cosmetic, which is being worked on, but lower priority in my book.

I'll audit the list of ioctls and remove ones that may be objectionable,
and we'll go back through them after 2.6.22 and add back in ones that
are actually required. Keep the API/ABI small and expand if necessary.
What's the timeframe required here? Linville said a few days at the
most.

Dan


2007-05-08 23:31:39

by Nick Piggin

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

Jeff Garzik wrote:
> Nick Piggin wrote:
>
>> Two things on top of a lot of people's pet peeves list are lack of
>> good review bandwidth, and poor driver code! So it is sad this was
>> merged without Christoph's comments being addressed. "it works for
>> me, we can fix it later" is probably a big reason for quality
>> problems of some parts of the kernel.
>>
>> As for Christoph's idea of perfection... it usually isn't a bad
>> thing. And he is quite reasonable if you explain your good reason
>> to disagree or do something differently. The attitude of ignoring
>> comments can be really demotivating for a reviewer.
>
>
> I guess it's a good thing that the maintainer was not ignoring the
> review comments, then...

My rant was not directed at the driver author...

--
SUSE Labs, Novell Inc.

2007-05-07 17:02:36

by John W. Linville

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

On Mon, May 07, 2007 at 11:48:46AM -0400, Jeff Garzik wrote:
> Dan Williams wrote:
> >So, either we push it off until 2.6.23, or it gets merged as-is and we
> >clean it up as we go along, which we'll certainly do.
>
> Um, it was merged a while ago.
>
> That's why John's email, and my own, are discussing the revert of the
> driver, not the merge of the driver.
>
> The executive decision has been made.

Yep, let's keep it -- and keep Dan and Marcelo on the hook... :-)

John
--
John W. Linville
[email protected]

2007-05-08 06:14:09

by Matt Mackall

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

On Mon, May 07, 2007 at 11:22:34AM -0400, Jeff Garzik wrote:
> John W. Linville wrote:
> >On Mon, May 07, 2007 at 08:03:43AM -0400, Dan Williams wrote:
> >>On Mon, 2007-05-07 at 11:41 +0100, Christoph Hellwig wrote:
> >
> >>>Of course it's not anywhere near good shape. Almost all items from my
> >>>review were completely ignored, and we have another totoally substandard
> >>>wireless driver with crappy thread handling, a huge number of broken
> >>>private
> >>>ioctls and partially absymal codingstyle.
> >
> >>I've already updated libertas-2.6 git with a ton of updates for this.
> >>
> >>In any case, lets push off any merge until 2.6.23 so the rest of the
> >>comments can be dealt with:
> >
> >Alright...Jeff, would you please pull the following branch for upstream
> >ASAP:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git revert-libertas
>
> This is leading from behind :/ We don't need to blow about in the wind
> here. If you reviewed the driver in depth -- which I assumed because of
> the trust placed in you as wireless maintainer -- then this situation
> really should not be happening. You need to know the status of new
> drivers you are pushing upstream: what work is left to do, what has been
> done, what state the driver is in.
>
> I view this request as a failure of the trust network :(
>
> For my part, I _did_ review it. Twice. Once in the early days, and
> once when I pulled it into my netdev-2.6.git tree. libertas needs the
> changes mentioned in this thread. But the driver is in workable shape
> to be USED while being improved. I strongly dislike people being cowed
> into not merging a driver for years, because the driver in question does
> not meet Christoph's idea of perfection.

It's a shame to expose new ABI bits that we expect to change to
mainline. Getting rid of obsolete interfaces is next to impossible so
the introduction of new interfaces really does warrant serious
consideration.

Can we come up with a scheme to keep the new ioctls introduced by this
driver from leaking over into distro-land before they get reworked?
Like preemptively adding a deprecation printk?

--
Mathematics is the supreme nostalgia of our time.

2007-05-07 12:00:25

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'libertas' branch of wireless-2.6

On Mon, 2007-05-07 at 11:41 +0100, Christoph Hellwig wrote:
> On Sat, Mar 03, 2007 at 05:21:40AM +0000, Christoph Hellwig wrote:
> > Umm, I can't remember the updated driver ever beeig posted for review.
> > And to be honest I'd be surprised if it's in a good shape already.
>
> Of course it's not anywhere near good shape. Almost all items from my
> review were completely ignored, and we have another totoally substandard
> wireless driver with crappy thread handling, a huge number of broken private
> ioctls and partially absymal codingstyle.

- things like 11d.[ch] don't have business of being in a driver,
this should be somewhere in common code.

There is no common code for this. mac80211 will eventually grow a
utility library that libertas will hopefully be able to attach to.

- please get rid of the ENTER/LEAVE macros

People have said that many drivers do this, and it's quite useful for
debugging.

- please get rid of all your private ioctls and iwpriv stuff
(should I add !!!! here)

Any ioctls that have equivalents in WEXT or ethtool can certainly be
removed. Mesh ones like fwt_reset, bt_reset, mesh_get_ttl, etc have no
current equivalents and will need to stick around. I've already removed
all the ones that were relevant for WPA and moved them to standard WEXT
calls.

- most of types.h should not be there but you should be using
the types from include/linux/*80211*

I've already updated libertas-2.6 git with a ton of updates for this.

In any case, lets push off any merge until 2.6.23 so the rest of the
comments can be dealt with:

- the __le* annotation issue you mentioned in the mail is important.
- there shouldn't be a LICENSE file in individual driver directories,
especially if it's just plain old GPLv2.
- please get rid of setting -DFOO flags in the Makefile, just use
these directly as config symbols.
- there shouldn't be a README file in the driver directory, this
should be in Documentation/
- please don't use wlan_* foo types. a) this should be structs, not
typedefs, and b) wlan is an utterly generic name for beeing inside
a driver.
- there seems to be lots of tabs vs spaces messups
- there's an awful lot of headers without clear divided
responsibilities,
there should be only a few ones left (internal interfaces and hw
interface basically)
- having lowercase names for lots of hw commands is a very bad idea
for readability
- etc

Dan

> And I didn't even get a reply to my mail addressing the concerns above.
> -
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


2007-05-07 15:23:12

by Jeff Garzik

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

John W. Linville wrote:
> On Mon, May 07, 2007 at 08:03:43AM -0400, Dan Williams wrote:
>> On Mon, 2007-05-07 at 11:41 +0100, Christoph Hellwig wrote:
>
>>> Of course it's not anywhere near good shape. Almost all items from my
>>> review were completely ignored, and we have another totoally substandard
>>> wireless driver with crappy thread handling, a huge number of broken private
>>> ioctls and partially absymal codingstyle.
>
>> I've already updated libertas-2.6 git with a ton of updates for this.
>>
>> In any case, lets push off any merge until 2.6.23 so the rest of the
>> comments can be dealt with:
>
> Alright...Jeff, would you please pull the following branch for upstream ASAP:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git revert-libertas

This is leading from behind :/ We don't need to blow about in the wind
here. If you reviewed the driver in depth -- which I assumed because of
the trust placed in you as wireless maintainer -- then this situation
really should not be happening. You need to know the status of new
drivers you are pushing upstream: what work is left to do, what has been
done, what state the driver is in.

I view this request as a failure of the trust network :(

For my part, I _did_ review it. Twice. Once in the early days, and
once when I pulled it into my netdev-2.6.git tree. libertas needs the
changes mentioned in this thread. But the driver is in workable shape
to be USED while being improved. I strongly dislike people being cowed
into not merging a driver for years, because the driver in question does
not meet Christoph's idea of perfection.

Open source is about release early, release often. Not "hide code in a
dark corner until Christoph thinks it is perfect." We have high
standards for upstream merged code, but that standard is not perfection.
Perfect is the enemy of good.

I would rather see the libertas-2.6 git changes pulled into upstream,
and am not inclined to revert a WORKING DRIVER at this point, a driver
that is actively maintained and has seen quite a bit of improvement
since it initially appeared.

IMO, Linux users best served by avoiding this silly song and dance, now
that the driver is upstream.

Plus, that leaves the kernel history less polluted.

Jeff





2007-05-08 23:41:11

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Tue, May 08, 2007 at 06:40:54PM -0400, Jeff Garzik wrote:
> Dan Williams wrote:
> >I'll audit the list of ioctls and remove ones that may be objectionable,
> >and we'll go back through them after 2.6.22 and add back in ones that
> >are actually required. Keep the API/ABI small and expand if necessary.
> >What's the timeframe required here? Linville said a few days at the
> >most.
>
> Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
> two after merge window opens.
>
> But even if you miss -rc1, we MUST get in the ioctl removal before
> 2.6.22 release. This is certainly exception to the "nothing but bug
> fixes" rule -- or perhaps it is following the rule, if you consider the
> ioctls' existence a bug :)
>
> Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
> as I noted, lower priority than serious stuff like ioctl consideration.

There is also a bunch of updates pending. I'm sending them over this
week.

Dan: I'll be sending everything thats currently in our tree but not
mainline.

2007-05-07 15:48:52

by Jeff Garzik

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

Dan Williams wrote:
> So, either we push it off until 2.6.23, or it gets merged as-is and we
> clean it up as we go along, which we'll certainly do.

Um, it was merged a while ago.

That's why John's email, and my own, are discussing the revert of the
driver, not the merge of the driver.

The executive decision has been made.

Jeff



2007-05-09 21:44:05

by Randy Dunlap

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

Dan Williams wrote:
> On Wed, 2007-05-09 at 14:25 -0700, Randy Dunlap wrote:
>> On Tue, 08 May 2007 21:27:00 -0400 Dan Williams wrote:
>>
>>> On Tue, 2007-05-08 at 20:41 -0300, Marcelo Tosatti wrote:
>>>> On Tue, May 08, 2007 at 06:40:54PM -0400, Jeff Garzik wrote:
>>>>> Dan Williams wrote:
>>>>>> I'll audit the list of ioctls and remove ones that may be objectionable,
>>>>>> and we'll go back through them after 2.6.22 and add back in ones that
>>>>>> are actually required. Keep the API/ABI small and expand if necessary.
>>>>>> What's the timeframe required here? Linville said a few days at the
>>>>>> most.
>>>>> Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
>>>>> two after merge window opens.
>>>>>
>>>>> But even if you miss -rc1, we MUST get in the ioctl removal before
>>>>> 2.6.22 release. This is certainly exception to the "nothing but bug
>>>>> fixes" rule -- or perhaps it is following the rule, if you consider the
>>>>> ioctls' existence a bug :)
>>>>>
>>>>> Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
>>>>> as I noted, lower priority than serious stuff like ioctl consideration.
>>>> There is also a bunch of updates pending. I'm sending them over this
>>>> week.
>>>>
>>>> Dan: I'll be sending everything thats currently in our tree but not
>>>> mainline.
>>> I'm going through the ioctls as we speak... what else was pending?
>> All of the printk format warnings & cast warnings from 2.6.21-mm2 ??
>
> I can fix those up; but setting KBUILD_VERBOSE=1 and recompiling doesn't
> show any of them in current libertas-2.6; -Wall is definitely defined.
> Is there another way to enable something give yet more verbose debug
> output?

No, I think that it's just host arch. and/or gcc dependent.

I built on x86_64. Can you do that?

> Thanks,
> Dan
>
>> drivers/net/wireless/libertas/rx.c: In function 'libertas_process_rxed_packet':
>> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
>> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
>> drivers/net/wireless/libertas/rx.c: In function 'process_rxed_802_11_packet':
>> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
>> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
>> drivers/net/wireless/libertas/tx.c: In function 'SendSinglePacket':
>> drivers/net/wireless/libertas/tx.c:81: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
>> drivers/net/wireless/libertas/cmd.c: In function 'libertas_queue_cmd':
>> drivers/net/wireless/libertas/cmd.c:950: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/cmd.c: In function 'DownloadcommandToStation':
>> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/cmd.c: In function 'libertas_prepare_and_send_command':
>> drivers/net/wireless/libertas/cmd.c:1177: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/scan.c: In function 'InterpretBSSDescriptionWithIE':
>> drivers/net/wireless/libertas/scan.c:1118: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
>> drivers/net/wireless/libertas/scan.c: In function 'libertas_get_scan':
>> drivers/net/wireless/libertas/scan.c:1586: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'
>> drivers/net/wireless/libertas/join.c: In function 'libertas_cmd_80211_ad_hoc_join':
>> drivers/net/wireless/libertas/join.c:789: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_linkmode_ioctl':
>> drivers/net/wireless/libertas/ioctl.c:696: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_radiomode_ioctl':
>> drivers/net/wireless/libertas/ioctl.c:728: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_debugmode_ioctl':
>> drivers/net/wireless/libertas/ioctl.c:757: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_cleanup_ioctl':
>> drivers/net/wireless/libertas/ioctl.c:1779: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_time_ioctl':
>> drivers/net/wireless/libertas/ioctl.c:1810: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_mesh_get_ttl_ioctl':
>> drivers/net/wireless/libertas/ioctl.c:1839: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/ioctl.c: In function 'libertas_do_ioctl':
>> drivers/net/wireless/libertas/ioctl.c:1947: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/ioctl.c:2025: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/ioctl.c:2171: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/ioctl.c:2188: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/ioctl.c:2192: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/ioctl.c:2196: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_parse_ssid':
>> drivers/net/wireless/libertas/debugfs.c:279: warning: comparison of distinct pointer types lacks a cast
>> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_read':
>> drivers/net/wireless/libertas/debugfs.c:1823: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/debugfs.c:1825: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/debugfs.c:1827: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_write':
>> drivers/net/wireless/libertas/debugfs.c:1884: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/debugfs.c:1886: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/debugfs.c:1888: warning: cast to pointer from integer of different size
>> drivers/net/wireless/libertas/debugfs.c: At top level:
>> drivers/net/wireless/libertas/debugfs.c:1900: warning: initialization from incompatible pointer type
>> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_debug_init':
>> drivers/net/wireless/libertas/debugfs.c:1919: warning: cast from pointer to integer of different size
>> drivers/net/wireless/libertas/if_usb.c: In function '__if_usb_submit_rx_urb':
>> drivers/net/wireless/libertas/if_usb.c:393: warning: passing argument 4 of 'usb_fill_bulk_urb' makes pointer from integer without a cast
>>
>>
>>
>>
>>> Louis has a few on libertas-dev list. We also need to pull wireless-2.6
>>> into libertas before we send linville a pull request, I think.


--
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***

2007-05-07 15:44:40

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

On Mon, 2007-05-07 at 11:22 -0400, Jeff Garzik wrote:
> John W. Linville wrote:
> > On Mon, May 07, 2007 at 08:03:43AM -0400, Dan Williams wrote:
> >> On Mon, 2007-05-07 at 11:41 +0100, Christoph Hellwig wrote:
> >
> >>> Of course it's not anywhere near good shape. Almost all items from my
> >>> review were completely ignored, and we have another totoally substandard
> >>> wireless driver with crappy thread handling, a huge number of broken private
> >>> ioctls and partially absymal codingstyle.
> >
> >> I've already updated libertas-2.6 git with a ton of updates for this.
> >>
> >> In any case, lets push off any merge until 2.6.23 so the rest of the
> >> comments can be dealt with:
> >
> > Alright...Jeff, would you please pull the following branch for upstream ASAP:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git revert-libertas
>
> This is leading from behind :/ We don't need to blow about in the wind
> here. If you reviewed the driver in depth -- which I assumed because of
> the trust placed in you as wireless maintainer -- then this situation
> really should not be happening. You need to know the status of new
> drivers you are pushing upstream: what work is left to do, what has been
> done, what state the driver is in.
>
> I view this request as a failure of the trust network :(
>
> For my part, I _did_ review it. Twice. Once in the early days, and
> once when I pulled it into my netdev-2.6.git tree. libertas needs the
> changes mentioned in this thread. But the driver is in workable shape
> to be USED while being improved. I strongly dislike people being cowed
> into not merging a driver for years, because the driver in question does
> not meet Christoph's idea of perfection.
>
> Open source is about release early, release often. Not "hide code in a
> dark corner until Christoph thinks it is perfect." We have high
> standards for upstream merged code, but that standard is not perfection.
> Perfect is the enemy of good.
>
> I would rather see the libertas-2.6 git changes pulled into upstream,
> and am not inclined to revert a WORKING DRIVER at this point, a driver
> that is actively maintained and has seen quite a bit of improvement
> since it initially appeared.
>
> IMO, Linux users best served by avoiding this silly song and dance, now
> that the driver is upstream.

Ok, somebody make an executive decision then. As it stands, the driver
_does_ work. Everyone understands it needs the cleanups that Christoph
has mentioned, and those of us who work on it certainly will keep
cleaning it up to hopefully match Christoph's expectations. Some of
that has already been done in upstream git.

So, either we push it off until 2.6.23, or it gets merged as-is and we
clean it up as we go along, which we'll certainly do.

Dan

> Plus, that leaves the kernel history less polluted.
>
> Jeff
>
>
>
>


2007-05-10 19:58:57

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Wed, 2007-05-09 at 17:41 -0400, Jeff Garzik wrote:
> Dan Williams wrote:
> > I can fix those up; but setting KBUILD_VERBOSE=1 and recompiling doesn't
> > show any of them in current libertas-2.6; -Wall is definitely defined.
> > Is there another way to enable something give yet more verbose debug
> > output?
>
>
> The copious libertas warnings are present in vanilla upstream
> linux-2.6.git.
>
> Just do "make allmodconfig && make -sj4".
>
> Jeff
>
>
> P.S. Make sure libertas is free of sparse warnings, as all drivers
> should be. Read Documentation/sparse.txt.

Sparse stuff fixed. Still getting working on 64-bit compiles.

Dan

> Jeff
>
>
>


2007-05-08 08:35:37

by Nick Piggin

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6 (was Re: Please pull 'libertas' branch of wireless-2.6)

Matt Mackall wrote:
> On Mon, May 07, 2007 at 11:22:34AM -0400, Jeff Garzik wrote:

>>For my part, I _did_ review it. Twice. Once in the early days, and
>>once when I pulled it into my netdev-2.6.git tree. libertas needs the
>>changes mentioned in this thread. But the driver is in workable shape
>>to be USED while being improved. I strongly dislike people being cowed
>>into not merging a driver for years, because the driver in question does
>>not meet Christoph's idea of perfection.
>
>
> It's a shame to expose new ABI bits that we expect to change to
> mainline. Getting rid of obsolete interfaces is next to impossible so
> the introduction of new interfaces really does warrant serious
> consideration.
>
> Can we come up with a scheme to keep the new ioctls introduced by this
> driver from leaking over into distro-land before they get reworked?
> Like preemptively adding a deprecation printk?

And it isn't only ioctls, but just having code there to set a bad
example, and added overhead of maintaining APIs used by the
driver.

Two things on top of a lot of people's pet peeves list are lack of
good review bandwidth, and poor driver code! So it is sad this was
merged without Christoph's comments being addressed. "it works for
me, we can fix it later" is probably a big reason for quality
problems of some parts of the kernel.

As for Christoph's idea of perfection... it usually isn't a bad
thing. And he is quite reasonable if you explain your good reason
to disagree or do something differently. The attitude of ignoring
comments can be really demotivating for a reviewer.

--
SUSE Labs, Novell Inc.

2007-05-10 20:46:13

by Dan Williams

[permalink] [raw]
Subject: Re: Please pull 'revert-libertas' branch of wireless-2.6

On Thu, 2007-05-10 at 12:56 -0400, Dan Williams wrote:
> On Wed, 2007-05-09 at 14:46 -0700, Randy Dunlap wrote:
> > Dan Williams wrote:
> > > On Wed, 2007-05-09 at 14:25 -0700, Randy Dunlap wrote:
> > >> On Tue, 08 May 2007 21:27:00 -0400 Dan Williams wrote:
> > >>
> > >>> On Tue, 2007-05-08 at 20:41 -0300, Marcelo Tosatti wrote:
> > >>>> On Tue, May 08, 2007 at 06:40:54PM -0400, Jeff Garzik wrote:
> > >>>>> Dan Williams wrote:
> > >>>>>> I'll audit the list of ioctls and remove ones that may be objectionable,
> > >>>>>> and we'll go back through them after 2.6.22 and add back in ones that
> > >>>>>> are actually required. Keep the API/ABI small and expand if necessary.
> > >>>>>> What's the timeframe required here? Linville said a few days at the
> > >>>>>> most.
> > >>>>> Ideally, before 2.6.22-rc1. No set date, but generally it's a week or
> > >>>>> two after merge window opens.
> > >>>>>
> > >>>>> But even if you miss -rc1, we MUST get in the ioctl removal before
> > >>>>> 2.6.22 release. This is certainly exception to the "nothing but bug
> > >>>>> fixes" rule -- or perhaps it is following the rule, if you consider the
> > >>>>> ioctls' existence a bug :)
> > >>>>>
> > >>>>> Getting the CodingStyle fixes in before 2.6.22-rc1 would be nice, but,
> > >>>>> as I noted, lower priority than serious stuff like ioctl consideration.
> > >>>> There is also a bunch of updates pending. I'm sending them over this
> > >>>> week.
> > >>>>
> > >>>> Dan: I'll be sending everything thats currently in our tree but not
> > >>>> mainline.
> > >>> I'm going through the ioctls as we speak... what else was pending?
> > >> All of the printk format warnings & cast warnings from 2.6.21-mm2 ??
> > >
> > > I can fix those up; but setting KBUILD_VERBOSE=1 and recompiling doesn't
> > > show any of them in current libertas-2.6; -Wall is definitely defined.
> > > Is there another way to enable something give yet more verbose debug
> > > output?
> >
> > No, I think that it's just host arch. and/or gcc dependent.
> >
> > I built on x86_64. Can you do that?
>
> Trying to scrape one up. Should be doable by the end of today.

Done; working on getting the (19) patches to linville.

Dan

> Dan
>
> >
> > > Thanks,
> > > Dan
> > >
> > >> drivers/net/wireless/libertas/rx.c: In function 'libertas_process_rxed_packet':
> > >> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> > >> drivers/net/wireless/libertas/rx.c:213: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
> > >> drivers/net/wireless/libertas/rx.c: In function 'process_rxed_802_11_packet':
> > >> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> > >> drivers/net/wireless/libertas/rx.c:367: warning: format '%d' expects type 'int', but argument 4 has type 'long unsigned int'
> > >> drivers/net/wireless/libertas/tx.c: In function 'SendSinglePacket':
> > >> drivers/net/wireless/libertas/tx.c:81: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> > >> drivers/net/wireless/libertas/cmd.c: In function 'libertas_queue_cmd':
> > >> drivers/net/wireless/libertas/cmd.c:950: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/cmd.c: In function 'DownloadcommandToStation':
> > >> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/cmd.c:979: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/cmd.c: In function 'libertas_prepare_and_send_command':
> > >> drivers/net/wireless/libertas/cmd.c:1177: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/scan.c: In function 'InterpretBSSDescriptionWithIE':
> > >> drivers/net/wireless/libertas/scan.c:1118: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int'
> > >> drivers/net/wireless/libertas/scan.c: In function 'libertas_get_scan':
> > >> drivers/net/wireless/libertas/scan.c:1586: warning: format '%d' expects type 'int', but argument 5 has type 'long unsigned int'
> > >> drivers/net/wireless/libertas/join.c: In function 'libertas_cmd_80211_ad_hoc_join':
> > >> drivers/net/wireless/libertas/join.c:789: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_linkmode_ioctl':
> > >> drivers/net/wireless/libertas/ioctl.c:696: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_radiomode_ioctl':
> > >> drivers/net/wireless/libertas/ioctl.c:728: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_set_debugmode_ioctl':
> > >> drivers/net/wireless/libertas/ioctl.c:757: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_cleanup_ioctl':
> > >> drivers/net/wireless/libertas/ioctl.c:1779: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_fwt_time_ioctl':
> > >> drivers/net/wireless/libertas/ioctl.c:1810: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c: In function 'wlan_mesh_get_ttl_ioctl':
> > >> drivers/net/wireless/libertas/ioctl.c:1839: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c: In function 'libertas_do_ioctl':
> > >> drivers/net/wireless/libertas/ioctl.c:1947: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c:2025: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c:2171: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c:2188: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c:2192: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/ioctl.c:2196: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_parse_ssid':
> > >> drivers/net/wireless/libertas/debugfs.c:279: warning: comparison of distinct pointer types lacks a cast
> > >> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_read':
> > >> drivers/net/wireless/libertas/debugfs.c:1823: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/debugfs.c:1825: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/debugfs.c:1827: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/debugfs.c: In function 'wlan_debugfs_write':
> > >> drivers/net/wireless/libertas/debugfs.c:1884: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/debugfs.c:1886: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/debugfs.c:1888: warning: cast to pointer from integer of different size
> > >> drivers/net/wireless/libertas/debugfs.c: At top level:
> > >> drivers/net/wireless/libertas/debugfs.c:1900: warning: initialization from incompatible pointer type
> > >> drivers/net/wireless/libertas/debugfs.c: In function 'libertas_debug_init':
> > >> drivers/net/wireless/libertas/debugfs.c:1919: warning: cast from pointer to integer of different size
> > >> drivers/net/wireless/libertas/if_usb.c: In function '__if_usb_submit_rx_urb':
> > >> drivers/net/wireless/libertas/if_usb.c:393: warning: passing argument 4 of 'usb_fill_bulk_urb' makes pointer from integer without a cast
> > >>
> > >>
> > >>
> > >>
> > >>> Louis has a few on libertas-dev list. We also need to pull wireless-2.6
> > >>> into libertas before we send linville a pull request, I think.
> >
> >
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html