Skip to content

Commit

Permalink
staging: brcm80211: moved ASSERT logic to fullmac driver
Browse files Browse the repository at this point in the history
Code cleanup. Softmac driver does not use ASSERTs anymore.

Cc: devel@linuxdriverproject.org
Cc: linux-wireless@vger.kernel.org
Cc: Brett Rudley <brudley@broadcom.com>
Cc: Henry Ptasinski <henryp@broadcom.com>
Cc: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Roland Vossen authored and Greg Kroah-Hartman committed May 3, 2011
1 parent 93af5a4 commit 13f401c
Show file tree
Hide file tree
Showing 8 changed files with 68 additions and 66 deletions.
2 changes: 2 additions & 0 deletions drivers/staging/brcm80211/brcmfmac/bcmsdh.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
#include <sbsdio.h> /* BRCM sdio device core */

#include <sdio.h> /* sdio spec */
#include "dngl_stats.h"
#include "dhd.h"

#define SDIOH_API_ACCESS_RETRY_LIMIT 2
const uint bcmsdh_msglevel = BCMSDH_ERROR_VAL;
Expand Down
3 changes: 3 additions & 0 deletions drivers/staging/brcm80211/brcmfmac/bcmsdh_linux.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ extern void dhdsdio_isr(void *args);
#include <linux/platform_device.h>
#endif /* CONFIG_MACH_SANDGATE2G */

#include "dngl_stats.h"
#include "dhd.h"

/**
* SDIO Host Controller info
*/
Expand Down
3 changes: 3 additions & 0 deletions drivers/staging/brcm80211/brcmfmac/bcmsdh_sdmmc_linux.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@
#include <linux/mmc/sdio_func.h>
#include <linux/mmc/sdio_ids.h>

#include "dngl_stats.h"
#include "dhd.h"

#if !defined(SDIO_VENDOR_ID_BROADCOM)
#define SDIO_VENDOR_ID_BROADCOM 0x02d0
#endif /* !defined(SDIO_VENDOR_ID_BROADCOM) */
Expand Down
10 changes: 10 additions & 0 deletions drivers/staging/brcm80211/brcmfmac/dhd.h
Original file line number Diff line number Diff line change
Expand Up @@ -397,4 +397,14 @@ extern char nv_path[MOD_PARAM_PATHLEN];
extern void dhd_wait_for_event(dhd_pub_t *dhd, bool * lockvar);
extern void dhd_wait_event_wakeup(dhd_pub_t *dhd);

extern u32 g_assert_type;

#ifdef BCMDBG
#define ASSERT(exp) \
do { if (!(exp)) osl_assert(#exp, __FILE__, __LINE__); } while (0)
extern void osl_assert(char *exp, char *file, int line);
#else
#define ASSERT(exp) do {} while (0)
#endif /* defined(BCMDBG) */

#endif /* _dhd_h_ */
50 changes: 50 additions & 0 deletions drivers/staging/brcm80211/brcmfmac/wl_iw.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@ iscan_info_t *g_iscan;

static const u8 ether_bcast[ETH_ALEN] = {255, 255, 255, 255, 255, 255};

/* Global ASSERT type flag */
u32 g_assert_type;

static void wl_iw_timerfunc(unsigned long data);
static void wl_iw_set_event_mask(struct net_device *dev);
static int wl_iw_iscan(iscan_info_t *iscan, wlc_ssid_t *ssid, u16 action);
Expand Down Expand Up @@ -3744,3 +3747,50 @@ void wl_iw_detach(void)

g_scan = NULL;
}

#if defined(BCMDBG)
void osl_assert(char *exp, char *file, int line)
{
char tempbuf[256];
char *basename;

basename = strrchr(file, '/');
/* skip the '/' */
if (basename)
basename++;

if (!basename)
basename = file;

snprintf(tempbuf, 256,
"assertion \"%s\" failed: file \"%s\", line %d\n", exp,
basename, line);

/*
* Print assert message and give it time to
* be written to /var/log/messages
*/
if (!in_interrupt()) {
const int delay = 3;
printk(KERN_ERR "%s", tempbuf);
printk(KERN_ERR "panic in %d seconds\n", delay);
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(delay * HZ);
}

switch (g_assert_type) {
case 0:
panic(KERN_ERR "%s", tempbuf);
break;
case 1:
printk(KERN_ERR "%s", tempbuf);
BUG();
break;
case 2:
printk(KERN_ERR "%s", tempbuf);
break;
default:
break;
}
}
#endif /* defined(BCMDBG) */
6 changes: 0 additions & 6 deletions drivers/staging/brcm80211/include/bcmdefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -114,12 +114,6 @@ typedef struct {

#define BCMEXTRAHDROOM 172

#ifdef BCMDBG
#ifndef BCMDBG_ASSERT
#define BCMDBG_ASSERT
#endif /* BCMDBG_ASSERT */
#endif /* BCMDBG */

/* Macros for doing definition and get/set of bitfields
* Usage example, e.g. a three-bit field (bits 4-6):
* #define <NAME>_M BITFIELD_MASK(3)
Expand Down
10 changes: 0 additions & 10 deletions drivers/staging/brcm80211/include/bcmutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -257,16 +257,6 @@ extern struct sk_buff *pktq_mdeq(struct pktq *pq, uint prec_bmp, int *prec_out);
#define REG_MAP(pa, size) (void *)(0)
#endif

extern u32 g_assert_type;

#if defined(BCMDBG_ASSERT)
#define ASSERT(exp) \
do { if (!(exp)) osl_assert(#exp, __FILE__, __LINE__); } while (0)
extern void osl_assert(char *exp, char *file, int line);
#else
#define ASSERT(exp) do {} while (0)
#endif /* defined(BCMDBG_ASSERT) */

/* register access macros */
#if defined(BCMSDIO)
#ifdef BRCM_FULLMAC
Expand Down
50 changes: 0 additions & 50 deletions drivers/staging/brcm80211/util/bcmutils.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@
#include <bcmdevs.h>
#include <proto/802.11.h>

/* Global ASSERT type flag */
u32 g_assert_type;

struct sk_buff *BCMFASTPATH pkt_buf_get_skb(uint len)
{
struct sk_buff *skb;
Expand Down Expand Up @@ -1044,50 +1041,3 @@ int bcm_bprintf(struct bcmstrbuf *b, const char *fmt, ...)

return r;
}

#if defined(BCMDBG_ASSERT)
void osl_assert(char *exp, char *file, int line)
{
char tempbuf[256];
char *basename;

basename = strrchr(file, '/');
/* skip the '/' */
if (basename)
basename++;

if (!basename)
basename = file;

snprintf(tempbuf, 256,
"assertion \"%s\" failed: file \"%s\", line %d\n", exp,
basename, line);

/*
* Print assert message and give it time to
* be written to /var/log/messages
*/
if (!in_interrupt()) {
const int delay = 3;
printk(KERN_ERR "%s", tempbuf);
printk(KERN_ERR "panic in %d seconds\n", delay);
set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout(delay * HZ);
}

switch (g_assert_type) {
case 0:
panic(KERN_ERR "%s", tempbuf);
break;
case 1:
printk(KERN_ERR "%s", tempbuf);
BUG();
break;
case 2:
printk(KERN_ERR "%s", tempbuf);
break;
default:
break;
}
}
#endif /* defined(BCMDBG_ASSERT) */

0 comments on commit 13f401c

Please sign in to comment.