Re: [BUG] Crda oopses the system

Maxim Levitsky
2009-05-31T12:47:15Z

On Sun, 2009-05-31 at 02:22 -0400, Luis R. Rodriguez wrote:
> On Fri, May 22, 2009 at 01:08:22PM +0300, Maxim Levitsky wrote:
> > I am talking about
> >
> > BUG_ON(!country_ie_regdomain);
> > in net/wireless/reg.c
>
> Please try this patch and leave a window open with this running:
>
> iw event
>
> Please be sure to grab iw from git, not sure if the reg events
> have all gone into an official release yet. What I'm looking for
> is whether or not a previous 11d setting was already processed
> or if the !country_ie_regdomain condition happens from the first
> 11d processing.
>
> Luis
>
> diff --git a/net/wireless/reg.c b/net/wireless/reg.c
> index f87ac1d..1b60dfc 100644
> --- a/net/wireless/reg.c
> +++ b/net/wireless/reg.c
> @@ -2171,7 +2171,11 @@ static int __set_regdom(const struct ieee80211_regdomain *rd)
> * the country IE rd with what CRDA believes that country should have
> */
>
> - BUG_ON(!country_ie_regdomain);
> + if (WARN_ON(!country_ie_regdomain)) {
> + kfree(rd);
> + rd = NULL;
> + return -EINVAL;
> + }
> BUG_ON(rd == country_ie_regdomain);
>
> /*
> @@ -2268,6 +2272,8 @@ int regulatory_init(void)
> if (IS_ERR(reg_pdev))
> return PTR_ERR(reg_pdev);
>
> + country_ie_regdomain = NULL;
> +
> spin_lock_init(&reg_requests_lock);
> spin_lock_init(&reg_pending_beacons_lock);
>

I'll test this today.
I have iw from git.

Best regards,
Maxim Levitsky