[PATCH] staging: ath6kl: Fixing device NULL pointer dereference

Joe Perches joe at perches.com
Thu Dec 16 06:04:15 UTC 2010


On Wed, 2010-12-15 at 17:15 -0800, Vipin Mehta wrote:
> On Tue, Dec 14, 2010 at 08:15:24PM -0800, Luis R. Rodriguez wrote:
> > > diff --git a/drivers/staging/ath6kl/os/linux/ar6000_drv.c b/drivers/staging/ath6kl/os/linux/ar6000_drv.c
> > > +    A_MEMZERO(&osDevInfo, sizeof(osDevInfo));
> > > +    if ( A_FAILED( HIFConfigureDevice(hif_handle, HIF_DEVICE_GET_OS_DEVICE,
> > while you are adding new code, why not use the direct Linux calls?

> I'll change the use of A_MEMZERO(), A_FAILED() macros and A_STATUS
> data type given that we have an incoming patch that cleans the rest
> of the code for similar usage. Changing the use of HIFConfigureDevice()
> will be more useful if we do it across the driver since it will require
> significant changes in the data structures defined in the HIF layer.
> It qualifies for an entirely separate patch and can be done later in a
> systematic way.

I hope you hold off for a bit making changes to ath6kl.

I just finished more of those cleanup conversions.
Here's what I've done so far.
There's a lot more of this still possible.
It's unfortunately large.

Sending separately to Vipin and Luis.

Reformat to remove typedefs, A_<foo> macros, etc.
Improve readability by using a more kernel conformant style.

Joe Perches (35):
  staging: ath6kl: Convert enum A_STATUS to int
  staging: ath6kl: Remove A_SUCCESS macro
  staging: ath6kl: Remove A_FAILED macro
  staging: ath6kl: Remove A_BOOL and TRUE/FALSE
  staging: ath6kl: Convert A_CHAR to char
  staging: ath6kl: Convert A_UINT8 to u8
  staging: ath6kl: Convert A_UINT16 to u16
  staging: ath6kl: Convert A_UINT32 to u32
  staging: ath6kl: Convert A_UINT64 to u64
  staging: ath6kl: Convert A_INT8 to s8
  staging: ath6kl: Convert A_INT16 to s16
  staging: ath6kl: Convert A_INT32 to s32
  staging: ath6kl: Convert (status != A_OK) to (status)
  staging: ath6kl: Remove #define A_OK
  staging: ath6kl: Convert leading spaces to tab indentation
  staging: ath6kl: Remove direct comparisons to true/false
  staging: ath6kl: Cuddle while open braces
  staging: ath6kl: Use do {} while (0) around #defines
  staging: ath6kl: Remove most uses of braces around single statements
  staging: ath6kl: Remove braces around single statement if { foo } else uses
  staging: ath6kl: Remove blank lines
  staging: ath6kl: Hoist assigns from ifs
  staging: ath6kl: Cuddle open brace to if
  staging: ath6kl: Cuddle else open brace
  staging: ath6kl: Add space after commas
  staging: ath6kl: Remove spaces before quoted newlines
  staging: ath6kl: Convert A_UCHAR to u8
  staging: ath6kl: Convert A_MEMCPY to memcpy
  staging: ath6kl: Convert A_MEMCMP to memcmp
  staging: ath6kl: Convert A_MALLOC to kmalloc/kzalloc
  staging: ath6kl: Convert A_MALLOC_NOWAIT to kmalloc/kzalloc(,GFP_ATOMIC)
  staging: ath6kl: Convert A_FREE to kfree
  staging: ath6kl: Convert A_MEMZERO to memset
  staging: ath6kl: Remove trailing whitespace
  staging: ath6kl: Convert AR_DEBUG_PRINTF to ath6k_dbg

 drivers/staging/ath6kl/bmi/include/bmi_internal.h  |   19 +-
 drivers/staging/ath6kl/bmi/src/bmi.c               | 1738 ++--
 .../staging/ath6kl/hif/common/hif_sdio_common.h    |   72 +-
 .../hif/sdio/linux_sdio/include/hif_internal.h     |   87 +-
 .../staging/ath6kl/hif/sdio/linux_sdio/src/hif.c   | 2019 +++--
 .../ath6kl/hif/sdio/linux_sdio/src/hif_scatter.c   |  682 +-
 drivers/staging/ath6kl/htc2/AR6000/ar6k.c          | 2373 +++---
 drivers/staging/ath6kl/htc2/AR6000/ar6k.h          |  496 +-
 drivers/staging/ath6kl/htc2/AR6000/ar6k_events.c   | 1317 ++--
 drivers/staging/ath6kl/htc2/AR6000/ar6k_gmbox.c    | 1293 ++--
 .../ath6kl/htc2/AR6000/ar6k_gmbox_hciuart.c        | 2286 +++---
 drivers/staging/ath6kl/htc2/htc.c                  |  875 +-
 drivers/staging/ath6kl/htc2/htc_debug.h            |    3 +-
 drivers/staging/ath6kl/htc2/htc_internal.h         |  206 +-
 drivers/staging/ath6kl/htc2/htc_recv.c             | 2827 +++---
 drivers/staging/ath6kl/htc2/htc_send.c             | 1821 ++--
 drivers/staging/ath6kl/htc2/htc_services.c         |  772 +-
 drivers/staging/ath6kl/include/a_config.h          |    2 +-
 drivers/staging/ath6kl/include/a_debug.h           |   62 +-
 drivers/staging/ath6kl/include/a_drv.h             |    2 +-
 drivers/staging/ath6kl/include/a_drv_api.h         |  108 +-
 drivers/staging/ath6kl/include/a_osapi.h           |    6 +-
 drivers/staging/ath6kl/include/a_types.h           |    2 +-
 drivers/staging/ath6kl/include/aggr_recv_api.h     |   46 +-
 drivers/staging/ath6kl/include/ar3kconfig.h        |   35 +-
 drivers/staging/ath6kl/include/ar6000_api.h        |    3 +-
 drivers/staging/ath6kl/include/ar6000_diag.h       |   29 +-
 drivers/staging/ath6kl/include/ar6kap_common.h     |   14 +-
 drivers/staging/ath6kl/include/athbtfilter.h       |  145 +-
 drivers/staging/ath6kl/include/athendpack.h        |    5 +-
 drivers/staging/ath6kl/include/athstartpack.h      |    4 +-
 drivers/staging/ath6kl/include/bmi.h               |  108 +-
 .../ath6kl/include/common/AR6002/AR6002_regdump.h  |   44 +-
 .../ath6kl/include/common/AR6002/AR6K_version.h    |    6 +-
 .../staging/ath6kl/include/common/AR6002/addrs.h   |   10 +-
 .../common/AR6002/hw2.0/hw/analog_intf_reg.h       |    1 -
 .../include/common/AR6002/hw2.0/hw/analog_reg.h    |    1 -
 .../include/common/AR6002/hw2.0/hw/gpio_reg.h      |    1 -
 .../include/common/AR6002/hw2.0/hw/mbox_host_reg.h |    1 -
 .../include/common/AR6002/hw2.0/hw/mbox_reg.h      |    1 -
 .../include/common/AR6002/hw2.0/hw/rtc_reg.h       |    1 -
 .../ath6kl/include/common/AR6002/hw2.0/hw/si_reg.h |    1 -
 .../include/common/AR6002/hw2.0/hw/uart_reg.h      |    1 -
 .../include/common/AR6002/hw2.0/hw/vmc_reg.h       |    1 -
 .../common/AR6002/hw4.0/hw/analog_intf_ares_reg.h  |    5 +-
 .../AR6002/hw4.0/hw/analog_intf_athr_wlan_reg.h    |    5 +-
 .../common/AR6002/hw4.0/hw/analog_intf_reg.h       |    9 +-
 .../common/AR6002/hw4.0/hw/apb_athr_wlan_map.h     |    3 +-
 .../include/common/AR6002/hw4.0/hw/apb_map.h       |    8 +-
 .../include/common/AR6002/hw4.0/hw/bb_lc_reg.h     |    5 +-
 .../include/common/AR6002/hw4.0/hw/efuse_reg.h     |    4 +-
 .../common/AR6002/hw4.0/hw/gpio_athr_wlan_reg.h    |    4 +-
 .../include/common/AR6002/hw4.0/hw/gpio_reg.h      |    8 +-
 .../include/common/AR6002/hw4.0/hw/mac_dma_reg.h   |   38 +-
 .../include/common/AR6002/hw4.0/hw/mac_pcu_reg.h   |    4 +-
 .../include/common/AR6002/hw4.0/hw/mbox_host_reg.h |    9 +-
 .../include/common/AR6002/hw4.0/hw/mbox_reg.h      |    8 +-
 .../common/AR6002/hw4.0/hw/mbox_wlan_host_reg.h    |    4 +-
 .../include/common/AR6002/hw4.0/hw/mbox_wlan_reg.h |    4 +-
 .../include/common/AR6002/hw4.0/hw/rdma_reg.h      |    4 +-
 .../include/common/AR6002/hw4.0/hw/rtc_reg.h       |    8 +-
 .../include/common/AR6002/hw4.0/hw/rtc_wlan_reg.h  |    4 +-
 .../ath6kl/include/common/AR6002/hw4.0/hw/si_reg.h |    4 +-
 .../include/common/AR6002/hw4.0/hw/uart_reg.h      |    4 +-
 .../include/common/AR6002/hw4.0/hw/umbox_reg.h     |    9 +-
 .../common/AR6002/hw4.0/hw/umbox_wlan_reg.h        |    4 +-
 .../include/common/AR6002/hw4.0/hw/vmc_reg.h       |    8 +-
 .../include/common/AR6002/hw4.0/hw/vmc_wlan_reg.h  |    4 +-
 drivers/staging/ath6kl/include/common/a_hci.h      |  483 +-
 drivers/staging/ath6kl/include/common/athdefs.h    |   87 +-
 drivers/staging/ath6kl/include/common/bmi_msg.h    |  273 +-
 drivers/staging/ath6kl/include/common/btcoexGpio.h |   15 +-
 drivers/staging/ath6kl/include/common/cnxmgmt.h    |   14 +-
 drivers/staging/ath6kl/include/common/dbglog.h     |   48 +-
 drivers/staging/ath6kl/include/common/dbglog_id.h  |   55 +-
 drivers/staging/ath6kl/include/common/discovery.h  |   60 +-
 .../staging/ath6kl/include/common/dset_internal.h  |   23 +-
 drivers/staging/ath6kl/include/common/dsetid.h     |   25 +-
 .../staging/ath6kl/include/common/epping_test.h    |   99 +-
 drivers/staging/ath6kl/include/common/gmboxif.h    |   27 +-
 drivers/staging/ath6kl/include/common/htc.h        |  204 +-
 .../staging/ath6kl/include/common/htc_services.h   |   30 +-
 drivers/staging/ath6kl/include/common/ini_dset.h   |   68 +-
 drivers/staging/ath6kl/include/common/pkt_log.h    |   16 +-
 drivers/staging/ath6kl/include/common/regDb.h      |    2 +-
 drivers/staging/ath6kl/include/common/regdump.h    |   14 +-
 .../include/common/regulatory/reg_dbschema.h       |  152 +-
 .../include/common/regulatory/reg_dbvalues.h       |  735 +-
 drivers/staging/ath6kl/include/common/roaming.h    |   18 +-
 drivers/staging/ath6kl/include/common/targaddrs.h  |  214 +-
 drivers/staging/ath6kl/include/common/testcmd.h    |  198 +-
 drivers/staging/ath6kl/include/common/tlpm.h       |    2 +-
 drivers/staging/ath6kl/include/common/wlan_defs.h  |   60 +-
 drivers/staging/ath6kl/include/common/wlan_dset.h  |    8 +-
 drivers/staging/ath6kl/include/common/wmi.h        | 2740 +++---
 drivers/staging/ath6kl/include/common/wmi_thin.h   |  310 +-
 drivers/staging/ath6kl/include/common/wmix.h       |  145 +-
 drivers/staging/ath6kl/include/common_drv.h        |   58 +-
 drivers/staging/ath6kl/include/dbglog_api.h        |   10 +-
 drivers/staging/ath6kl/include/dl_list.h           |  142 +-
 drivers/staging/ath6kl/include/dset_api.h          |   33 +-
 drivers/staging/ath6kl/include/gpio_api.h          |   24 +-
 drivers/staging/ath6kl/include/hci_transport_api.h |  177 +-
 drivers/staging/ath6kl/include/hif.h               |  287 +-
 drivers/staging/ath6kl/include/host_version.h      |    4 +-
 drivers/staging/ath6kl/include/htc_api.h           |  449 +-
 drivers/staging/ath6kl/include/htc_packet.h        |  278 +-
 drivers/staging/ath6kl/include/target_reg_table.h  |  256 +-
 drivers/staging/ath6kl/include/wlan_api.h          |  103 +-
 drivers/staging/ath6kl/include/wmi_api.h           |  547 +-
 drivers/staging/ath6kl/miscdrv/ar3kconfig.c        |  971 +-
 .../staging/ath6kl/miscdrv/ar3kps/ar3kpsconfig.c   |  805 +-
 .../staging/ath6kl/miscdrv/ar3kps/ar3kpsconfig.h   |   15 +-
 .../staging/ath6kl/miscdrv/ar3kps/ar3kpsparser.c   | 1504 ++--
 .../staging/ath6kl/miscdrv/ar3kps/ar3kpsparser.h   |   52 +-
 drivers/staging/ath6kl/miscdrv/common_drv.c        | 1479 ++--
 drivers/staging/ath6kl/miscdrv/credit_dist.c       |  599 +-
 drivers/staging/ath6kl/miscdrv/miscdrv.h           |   12 +-
 drivers/staging/ath6kl/os/linux/ar6000_android.c   |  559 +-
 drivers/staging/ath6kl/os/linux/ar6000_drv.c       | 9670 ++++++++++----------
 drivers/staging/ath6kl/os/linux/ar6000_pm.c        | 1077 ++--
 drivers/staging/ath6kl/os/linux/ar6000_raw_if.c    |  755 +-
 drivers/staging/ath6kl/os/linux/ar6k_pal.c         |  180 +-
 drivers/staging/ath6kl/os/linux/cfg80211.c         | 2389 +++---
 drivers/staging/ath6kl/os/linux/eeprom.c           |  640 +-
 .../staging/ath6kl/os/linux/export_hci_transport.c |   96 +-
 drivers/staging/ath6kl/os/linux/hci_bridge.c       | 1597 ++--
 .../staging/ath6kl/os/linux/include/ar6000_drv.h   |  644 +-
 drivers/staging/ath6kl/os/linux/include/ar6k_pal.h |    8 +-
 .../ath6kl/os/linux/include/ar6xapi_linux.h        |  172 +-
 .../staging/ath6kl/os/linux/include/athdrv_linux.h |  299 +-
 .../ath6kl/os/linux/include/athtypes_linux.h       |    4 +-
 drivers/staging/ath6kl/os/linux/include/cfg80211.h |   28 +-
 .../staging/ath6kl/os/linux/include/config_linux.h |    2 +-
 .../staging/ath6kl/os/linux/include/debug_linux.h  |   53 +-
 .../ath6kl/os/linux/include/export_hci_transport.h |   50 +-
 .../ath6kl/os/linux/include/ieee80211_ioctl.h      |  110 +-
 .../staging/ath6kl/os/linux/include/osapi_linux.h  |  243 +-
 .../staging/ath6kl/os/linux/include/wlan_config.h  |   20 +-
 .../ath6kl/os/linux/include/wmi_filter_linux.h     |   12 +-
 drivers/staging/ath6kl/os/linux/ioctl.c            | 7781 ++++++++---------
 drivers/staging/ath6kl/os/linux/netbuf.c           |  140 +-
 drivers/staging/ath6kl/os/linux/wireless_ext.c     | 4302 +++++-----
 drivers/staging/ath6kl/reorder/aggr_rx_internal.h  |   82 +-
 drivers/staging/ath6kl/reorder/rcv_aggr.c          | 1012 +--
 drivers/staging/ath6kl/wlan/include/ieee80211.h    |  219 +-
 .../staging/ath6kl/wlan/include/ieee80211_node.h   |   43 +-
 drivers/staging/ath6kl/wlan/src/wlan_node.c        |  833 +-
 drivers/staging/ath6kl/wlan/src/wlan_recv_beacon.c |  253 +-
 drivers/staging/ath6kl/wlan/src/wlan_utils.c       |   41 +-
 drivers/staging/ath6kl/wmi/wmi.c                   | 9408 +++++++++----------
 drivers/staging/ath6kl/wmi/wmi_host.h              |   66 +-
 152 files changed, 37473 insertions(+), 38938 deletions(-)






More information about the devel mailing list