staging: brcm80211: moved ASSERT logic to fullmac driver
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>
This commit is contained in:
Родитель
93af5a4833
Коммит
13f401cb53
|
@ -29,6 +29,8 @@
|
||||||
#include <sbsdio.h> /* BRCM sdio device core */
|
#include <sbsdio.h> /* BRCM sdio device core */
|
||||||
|
|
||||||
#include <sdio.h> /* sdio spec */
|
#include <sdio.h> /* sdio spec */
|
||||||
|
#include "dngl_stats.h"
|
||||||
|
#include "dhd.h"
|
||||||
|
|
||||||
#define SDIOH_API_ACCESS_RETRY_LIMIT 2
|
#define SDIOH_API_ACCESS_RETRY_LIMIT 2
|
||||||
const uint bcmsdh_msglevel = BCMSDH_ERROR_VAL;
|
const uint bcmsdh_msglevel = BCMSDH_ERROR_VAL;
|
||||||
|
|
|
@ -43,6 +43,9 @@ extern void dhdsdio_isr(void *args);
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#endif /* CONFIG_MACH_SANDGATE2G */
|
#endif /* CONFIG_MACH_SANDGATE2G */
|
||||||
|
|
||||||
|
#include "dngl_stats.h"
|
||||||
|
#include "dhd.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SDIO Host Controller info
|
* SDIO Host Controller info
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -27,6 +27,9 @@
|
||||||
#include <linux/mmc/sdio_func.h>
|
#include <linux/mmc/sdio_func.h>
|
||||||
#include <linux/mmc/sdio_ids.h>
|
#include <linux/mmc/sdio_ids.h>
|
||||||
|
|
||||||
|
#include "dngl_stats.h"
|
||||||
|
#include "dhd.h"
|
||||||
|
|
||||||
#if !defined(SDIO_VENDOR_ID_BROADCOM)
|
#if !defined(SDIO_VENDOR_ID_BROADCOM)
|
||||||
#define SDIO_VENDOR_ID_BROADCOM 0x02d0
|
#define SDIO_VENDOR_ID_BROADCOM 0x02d0
|
||||||
#endif /* !defined(SDIO_VENDOR_ID_BROADCOM) */
|
#endif /* !defined(SDIO_VENDOR_ID_BROADCOM) */
|
||||||
|
|
|
@ -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_for_event(dhd_pub_t *dhd, bool * lockvar);
|
||||||
extern void dhd_wait_event_wakeup(dhd_pub_t *dhd);
|
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_ */
|
#endif /* _dhd_h_ */
|
||||||
|
|
|
@ -119,6 +119,9 @@ iscan_info_t *g_iscan;
|
||||||
|
|
||||||
static const u8 ether_bcast[ETH_ALEN] = {255, 255, 255, 255, 255, 255};
|
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_timerfunc(unsigned long data);
|
||||||
static void wl_iw_set_event_mask(struct net_device *dev);
|
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);
|
static int wl_iw_iscan(iscan_info_t *iscan, wlc_ssid_t *ssid, u16 action);
|
||||||
|
@ -3744,3 +3747,50 @@ void wl_iw_detach(void)
|
||||||
|
|
||||||
g_scan = NULL;
|
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) */
|
||||||
|
|
|
@ -114,12 +114,6 @@ typedef struct {
|
||||||
|
|
||||||
#define BCMEXTRAHDROOM 172
|
#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
|
/* Macros for doing definition and get/set of bitfields
|
||||||
* Usage example, e.g. a three-bit field (bits 4-6):
|
* Usage example, e.g. a three-bit field (bits 4-6):
|
||||||
* #define <NAME>_M BITFIELD_MASK(3)
|
* #define <NAME>_M BITFIELD_MASK(3)
|
||||||
|
|
|
@ -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)
|
#define REG_MAP(pa, size) (void *)(0)
|
||||||
#endif
|
#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 */
|
/* register access macros */
|
||||||
#if defined(BCMSDIO)
|
#if defined(BCMSDIO)
|
||||||
#ifdef BRCM_FULLMAC
|
#ifdef BRCM_FULLMAC
|
||||||
|
|
|
@ -28,9 +28,6 @@
|
||||||
#include <bcmdevs.h>
|
#include <bcmdevs.h>
|
||||||
#include <proto/802.11.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 *BCMFASTPATH pkt_buf_get_skb(uint len)
|
||||||
{
|
{
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
@ -1044,50 +1041,3 @@ int bcm_bprintf(struct bcmstrbuf *b, const char *fmt, ...)
|
||||||
|
|
||||||
return r;
|
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) */
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче