2009-02-20 18:35:56

by Michael Büsch

[permalink] [raw]
Subject: [PATCH 0/6] b43: Use spatch to convert register accesses

Some time ago I rejected a bunch of patches that converted the
PHY/radio register accesses to the new API. That was due to the patches
being created manually. This introduces a huge potential to add new bugs.

However, this is an excellent task for coccinelle/spatch.
So here's a series of patches, to convert the API usage, that were generated
with spatch. This should keep the chances of breaking something as low as possible.

This reduces the .ko size by about 6 kiB.

The used semantic patches will be included in the patch headers.

John, please queue these patches for the next feature release.

--
Greetings, Michael.


2009-02-20 19:12:00

by Michael Büsch

[permalink] [raw]
Subject: Re: [PATCH 0/6] b43: Use spatch to convert register accesses

On Friday 20 February 2009 19:19:15 Michael Buesch wrote:
> Some time ago I rejected a bunch of patches that converted the
> PHY/radio register accesses to the new API. That was due to the patches
> being created manually. This introduces a huge potential to add new bugs.
>
> However, this is an excellent task for coccinelle/spatch.
> So here's a series of patches, to convert the API usage, that were generated
> with spatch. This should keep the chances of breaking something as low as possible.
>
> This reduces the .ko size by about 6 kiB.
>
> The used semantic patches will be included in the patch headers.
>
> John, please queue these patches for the next feature release.
>

Hm, the patches didn't get through linux-wireless. Possibly due to their size.
You can find them here:

https://lists.berlios.de/pipermail/bcm43xx-dev/2009-February/008696.html
https://lists.berlios.de/pipermail/bcm43xx-dev/2009-February/008695.html
https://lists.berlios.de/pipermail/bcm43xx-dev/2009-February/008697.html
https://lists.berlios.de/pipermail/bcm43xx-dev/2009-February/008698.html
https://lists.berlios.de/pipermail/bcm43xx-dev/2009-February/008700.html
https://lists.berlios.de/pipermail/bcm43xx-dev/2009-February/008699.html

--
Greetings, Michael.

2009-02-20 20:10:26

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 0/6] b43: Use spatch to convert register accesses

Michael Buesch wrote:
> Some time ago I rejected a bunch of patches that converted the
> PHY/radio register accesses to the new API. That was due to the patch=
es
> being created manually. This introduces a huge potential to add new b=
ugs.
>=20
> However, this is an excellent task for coccinelle/spatch.
> So here's a series of patches, to convert the API usage, that were ge=
nerated
> with spatch. This should keep the chances of breaking something as lo=
w as possible.
>=20
> This reduces the .ko size by about 6 kiB.
>=20
> The used semantic patches will be included in the patch headers.
>=20
> John, please queue these patches for the next feature release.

Michael,

With those patches applied on an x86_64 system, I get the following war=
nings:


=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
CC [M] drivers/net/wireless/b43/phy_a.o
drivers/net/wireless/b43/phy_g.c: In function
=E2=80=98b43_radio_interference_mitigation_enable=E2=80=99:
drivers/net/wireless/b43/phy_g.c:974: warning: large integer implicitly
truncated to unsigned type
CC [M] drivers/net/wireless/b43/wa.o
drivers/net/wireless/b43/wa.c: In function =E2=80=98b43_wa_altagc=E2=80=
=99:
drivers/net/wireless/b43/wa.c:391: warning: large integer implicitly tr=
uncated
to unsigned type
drivers/net/wireless/b43/wa.c:409: warning: large integer implicitly tr=
uncated
to unsigned type
drivers/net/wireless/b43/wa.c:411: warning: large integer implicitly tr=
uncated
to unsigned type
drivers/net/wireless/b43/wa.c:421: warning: large integer implicitly tr=
uncated
to unsigned type
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D

All of these occur where there is a constant of the form ~0xYXXX with Y=
in the
range 8-F. To get rid of the warning, either use a u16 cast, or manuall=
y
complement the constant.

Larry

2009-02-21 00:33:23

by Harvey Harrison

[permalink] [raw]
Subject: Re: [PATCH 0/6] b43: Use spatch to convert register accesses

On Fri, 2009-02-20 at 19:19 +0100, Michael Buesch wrote:
> Some time ago I rejected a bunch of patches that converted the
> PHY/radio register accesses to the new API. That was due to the patches
> being created manually. This introduces a huge potential to add new bugs.
>
> However, this is an excellent task for coccinelle/spatch.
> So here's a series of patches, to convert the API usage, that were generated
> with spatch. This should keep the chances of breaking something as low as possible.
>
> This reduces the .ko size by about 6 kiB.
>
> The used semantic patches will be included in the patch headers.
>
> John, please queue these patches for the next feature release.
>

Shoot, I also redid the patches with spatch but never resubmitted.

Oh well.

Harvey



2009-02-20 20:14:17

by Michael Büsch

[permalink] [raw]
Subject: Re: [PATCH 0/6] b43: Use spatch to convert register accesses

On Friday 20 February 2009 21:10:13 Larry Finger wrote:
> Michael Buesch wrote:
> > Some time ago I rejected a bunch of patches that converted the
> > PHY/radio register accesses to the new API. That was due to the pat=
ches
> > being created manually. This introduces a huge potential to add new=
bugs.
> >=20
> > However, this is an excellent task for coccinelle/spatch.
> > So here's a series of patches, to convert the API usage, that were =
generated
> > with spatch. This should keep the chances of breaking something as =
low as possible.
> >=20
> > This reduces the .ko size by about 6 kiB.
> >=20
> > The used semantic patches will be included in the patch headers.
> >=20
> > John, please queue these patches for the next feature release.
>=20
> Michael,
>=20
> With those patches applied on an x86_64 system, I get the following w=
arnings:
>=20
>=20
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
> CC [M] drivers/net/wireless/b43/phy_a.o
> drivers/net/wireless/b43/phy_g.c: In function
> =E2=80=98b43_radio_interference_mitigation_enable=E2=80=99:
> drivers/net/wireless/b43/phy_g.c:974: warning: large integer implicit=
ly
> truncated to unsigned type
> CC [M] drivers/net/wireless/b43/wa.o
> drivers/net/wireless/b43/wa.c: In function =E2=80=98b43_wa_altagc=E2=80=
=99:
> drivers/net/wireless/b43/wa.c:391: warning: large integer implicitly =
truncated
> to unsigned type
> drivers/net/wireless/b43/wa.c:409: warning: large integer implicitly =
truncated
> to unsigned type
> drivers/net/wireless/b43/wa.c:411: warning: large integer implicitly =
truncated
> to unsigned type
> drivers/net/wireless/b43/wa.c:421: warning: large integer implicitly =
truncated
> to unsigned type
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
>=20
> All of these occur where there is a constant of the form ~0xYXXX with=
Y in the
> range 8-F. To get rid of the warning, either use a u16 cast, or manua=
lly
> complement the constant.

Yes I know this. These warnings are harmless and I'll fix it in a separ=
ate patch.
These patches were supposed to be computer-generated to reduce the poss=
ibility of random breakage.


--=20
Greetings, Michael.