History log of /openbmc/linux/drivers/net/wireless/ath/ath6kl/txrx.c (Results 126 – 150 of 156)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 901db39c 08-Nov-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix packet drop when ath6kl_cookie runs out

"ath6kl: Maintain virtual interface in a list" mistakenly stops the
netq only when the mode is ibss. This causes packet drops in sta m

ath6kl: Fix packet drop when ath6kl_cookie runs out

"ath6kl: Maintain virtual interface in a list" mistakenly stops the
netq only when the mode is ibss. This causes packet drops in sta mode
when the available cookies (buffer abstraction in ath6kl and also used
for tx throttling) runs out for the highest priority traffic. This patch
just fixes this regression though the original code may still need fixes
which can be addressed in separate patches.

Reported-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


Revision tags: v3.2-rc1
# f3803eb2 07-Nov-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix accessing wrong skb->data in ath6kl_tx_complete()

When buffer alignmnet is applied, the data pointer of skb taken from
cookie will no longer point to the first byte of the ac

ath6kl: Fix accessing wrong skb->data in ath6kl_tx_complete()

When buffer alignmnet is applied, the data pointer of skb taken from
cookie will no longer point to the first byte of the actual data.
But the skb->data pointer is used in ath6kl_tx_complete() to get
the index of the virtual interface which will not give the correct
interface index and sometimes may give the following WARN_ON() message.
Use packet->buf instead of skb->data to fix this.

WARNING: at drivers/net/wireless/ath/ath6kl/wmi.c:88 ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]()
Hardware name: 2842K3U
Modules linked in: ath6kl mmc_block cfg80211 binfmt_misc ppdev nfs nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_intel
+snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_dummy thinkpad_acpi snd_seq_oss snd_seq_midi snd_rawmidi joydev fbcon tileblit font bitblit softcursor
+snd_seq_midi_event snd_seq snd_timer snd_seq_device i915 uvcvideo drm_kms_helper drm psmouse serio_raw snd i2c_algo_bit sdhci_pci videodev intel_agp soundcore intel_gtt jmb38x_ms
+memstick sdhci snd_page_alloc nvram lp parport agpgart video ahci r8169 mii libahci [last unloaded: ath6kl]
Pid: 15482, comm: kworker/u:1 Tainted: G W 3.1.0-rc10-wl+ #2
Call Trace:
[<c0144d72>] warn_slowpath_common+0x72/0xa0
[<fb7c94fb>] ? ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]
[<fb7c94fb>] ? ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]
[<c0144dc2>] warn_slowpath_null+0x22/0x30
[<fb7c94fb>] ath6kl_get_vif_by_index+0x5b/0x60 [ath6kl]
[<fb7c7028>] ath6kl_tx_complete+0x128/0x4d0 [ath6kl]
[<c04df920>] ? mmc_request_done+0x80/0x80
[<fb7b9e2e>] htc_tx_complete+0x5e/0x70 [ath6kl]
[<c05e4cf6>] ? _raw_spin_unlock_bh+0x16/0x20
[<fb7ce588>] ? ath6kl_sdio_scatter_req_add+0x48/0x60 [ath6kl]
[<fb7b9f42>] htc_async_tx_scat_complete+0xb2/0x120 [ath6kl]
[<fb7ce9e7>] ath6kl_sdio_scat_rw+0x87/0x370 [ath6kl]
[<c0101e12>] ? __switch_to+0xd2/0x190
[<c01397b5>] ? finish_task_switch+0x45/0xd0
[<c05e272e>] ? __schedule+0x3ae/0x8b0
[<fb7cf00a>] ath6kl_sdio_write_async_work+0x4a/0xf0 [ath6kl]
[<c015d266>] process_one_work+0x116/0x3c0
[<fb7cefc0>] ? ath6kl_sdio_read_write_sync+0xb0/0xb0 [ath6kl]
[<c015f5b0>] worker_thread+0x140/0x3b0
[<c015f470>] ? manage_workers+0x1f0/0x1f0
[<c0163424>] kthread+0x74/0x80
[<c01633b0>] ? kthread_worker_fn+0x160/0x160
[<c05ebdc6>] kernel_thread_helper+0x6/0x10

Reported-by: Aarthi Thiruvengadam <athiruve@qca.qualcomm.com>
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# a29517ce 04-Nov-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix tx packet drop in AP mode with bridge

skb is dropped in ath6kl_data_tx() when the headroom in skb
is insufficient. We hit this condition for every skb in AP mode
which is

ath6kl: Fix tx packet drop in AP mode with bridge

skb is dropped in ath6kl_data_tx() when the headroom in skb
is insufficient. We hit this condition for every skb in AP mode
which is used with bridge, so all tx packets are getting dropped
when tried to send traffic to wireless client from bridge. Fix
this by reallocating the headroom instead of dropping the skb
when it has lesser headroom than needed.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# a918fb3c 07-Nov-2011 Raja Mani <rmani@qca.qualcomm.com>

ath6kl: Perform WOW resume in RX path in case of SDIO IRQ wake up

The target triggers sdio data line to wake up the host when
WOW pattern matches. This causes sdio irq handler is being

ath6kl: Perform WOW resume in RX path in case of SDIO IRQ wake up

The target triggers sdio data line to wake up the host when
WOW pattern matches. This causes sdio irq handler is being
executed in the host side which internally hits ath6kl's RX path.

WOW resume should happen before start processing any data from
the target. So it's required to perform WOW resume in RX path.

This area needs bit rework to avoid WOW resume in RX path,
As of now it's fine to have this model, rework will be done later.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 11f6e40d 01-Nov-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix lockdep warning

The following is the lockdep warning which detects possible
deadlock condition with the way ar->lock and ar->list_lock
are being used.

(&(&ar->

ath6kl: Fix lockdep warning

The following is the lockdep warning which detects possible
deadlock condition with the way ar->lock and ar->list_lock
are being used.

(&(&ar->lock)->rlock){+.-...}, at: [<ffffffffa0492d13>] ath6kl_indicate_tx_activity+0x83/0x110 [ath6kl]
but this lock took another, SOFTIRQ-unsafe lock in the past:
(&(&ar->list_lock)->rlock){+.+...}

and interrupts could create inverse lock ordering between them.

other info that might help us debug this:
Possible interrupt unsafe locking scenario:

CPU0 CPU1
---- ----
lock(&(&ar->list_lock)->rlock);
local_irq_disable();
lock(&(&ar->lock)->rlock);
lock(&(&ar->list_lock)->rlock);
<Interrupt>
lock(&(&ar->lock)->rlock);

*** DEADLOCK ***

softirqs have to be disabled when acquiring ar->list_lock to avoid
the above deadlock condition. When the above warning printed the
interface is still up and running without issue.

Reported-by: Kalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 778e6502 27-Oct-2011 Kalle Valo <kvalo@qca.qualcomm.com>

ath6kl: don't print an error for canceled packets

ath6kl_tx_complete() was printing an error when packet was canceled.
That causes unnecessary errors when hardware is powered off.

ath6kl: don't print an error for canceled packets

ath6kl_tx_complete() was printing an error when packet was canceled.
That causes unnecessary errors when hardware is powered off.

Also change the error to a warning and cleanup the message.

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 990bd915 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Maintain virtual interface in a list

This patch removes all references to ar->vif and takes
vif from a list.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualc

ath6kl: Maintain virtual interface in a list

This patch removes all references to ar->vif and takes
vif from a list.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 478ac027 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Introduce spinlock to protect vif specific information

Use this spinlock to protect the vif's data instead of
one from ath6kl.

Signed-off-by: Vasanthakumar Thiagarajan <

ath6kl: Introduce spinlock to protect vif specific information

Use this spinlock to protect the vif's data instead of
one from ath6kl.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 6765d0aa 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Use interface index from wmi data headr

Interface index is passed in wmi data header as well, use it
to get the corresponding vif structure.

Signed-off-by: Vasanthakumar

ath6kl: Use interface index from wmi data headr

Interface index is passed in wmi data header as well, use it
to get the corresponding vif structure.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 28ae58dd 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Remove net_device from ath6kl

Use one which is available in vif structure instead.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Ka

ath6kl: Remove net_device from ath6kl

Use one which is available in vif structure instead.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 240d2799 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Take vif information from wmi event

Interface index is passed in wmi command header from target.
Use this index to get the appropriate vif.

Signed-off-by: Vasanthakumar

ath6kl: Take vif information from wmi event

Interface index is passed in wmi command header from target.
Use this index to get the appropriate vif.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 334234b5 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Maintain firmware interface index in struct ath6kl_vif

Pass this index to target in wmi commands to specify the interface
for which the command needs to be handled.

Sign

ath6kl: Maintain firmware interface index in struct ath6kl_vif

Pass this index to target in wmi commands to specify the interface
for which the command needs to be handled.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# b95907a7 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Make net and target stats vif specific

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>


# 2132c69c 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Move aggregation information to vif structure

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>


# f5938f24 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Move nw_type to vif structure

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>


# 59c98449 25-Oct-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Define interface specific states

Currently ar->flag maintains interface stats. Move interface
specific states from ar->flag to vif->flags.

Signed-off-by: Vasanthakumar T

ath6kl: Define interface specific states

Currently ar->flag maintains interface stats. Move interface
specific states from ar->flag to vif->flags.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


Revision tags: v3.1, v3.1-rc10
# ad3f78b9 06-Oct-2011 Kalle Valo <kvalo@qca.qualcomm.com>

ath6kl: fix null skb dereference in ath6kl_rx()

smatch found that skb might be null in some cases in ath6kl_rx():

ath6kl/txrx.c +1252 ath6kl_rx(222) error: potential null derefence

ath6kl: fix null skb dereference in ath6kl_rx()

smatch found that skb might be null in some cases in ath6kl_rx():

ath6kl/txrx.c +1252 ath6kl_rx(222) error: potential null derefence 'skb'.

This will happen when ath6kl is in AP mode and two clients send traffic
to each other.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


Revision tags: v3.1-rc9
# 1555f733 30-Sep-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix sparse warning "symbol 'conn' shadows an earlier one"

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>


Revision tags: v3.1-rc8
# ef094103 27-Sep-2011 Kalle Valo <kvalo@qca.qualcomm.com>

ath6kl: add prefix parameter to ath6kl_dbg_dump()

Makes it easier to recognise longs dumps.

Obligatory screenshot using "rx" prefix:

ath6kl: ath6kl_rx
rx 00000000: 10 1

ath6kl: add prefix parameter to ath6kl_dbg_dump()

Makes it easier to recognise longs dumps.

Obligatory screenshot using "rx" prefix:

ath6kl: ath6kl_rx
rx 00000000: 10 10 00 00 00 00 08 30 00 00 00 00 00 00 f9 0b .......0........
rx 00000010: 2c 44 08 30 00 00 f9 0b 0c a4 02 00 00 00 73 d2 ,D.0..........s.
rx 00000020: 94 00 f9 0b 04 8c 01 00 02 00 07 02 02 00 f9 0b ................

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 00b1edf1 27-Sep-2011 Jouni Malinen <jouni@qca.qualcomm.com>

ath6kl: fix TCP corruption

Commit 94e532d1a ("ath6kl: Fix system freeze under heavy data load")
aligns the skb data without checking if the skb is cloned. Because of
this ath6kl can

ath6kl: fix TCP corruption

Commit 94e532d1a ("ath6kl: Fix system freeze under heavy data load")
aligns the skb data without checking if the skb is cloned. Because of
this ath6kl can corrupt the local TCP stack information that can result
in TCP retransmission failing and TCP connections stalling.

To avoid the corruption we need to copy the skb. Now the alignment
in ath6kl_htc_tx_buf_align() doesn't corrupt TCP packets anymore (and is
not even used for the cloned skb's that got copied since the alignment
of the data is handled at the copy time).

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


Revision tags: v3.1-rc7
# 5694f962 19-Sep-2011 Kalle Valo <kvalo@qca.qualcomm.com>

ath6kl: pass only unicast frames for aggregation

When pinging form ar6003 to the AP RTT was high even when power save was
disabled:

100 packets transmitted, 97 received, 3% pack

ath6kl: pass only unicast frames for aggregation

When pinging form ar6003 to the AP RTT was high even when power save was
disabled:

100 packets transmitted, 97 received, 3% packet loss, time 99125ms
rtt min/avg/max/mdev = 1.875/46.733/795.506/139.181 ms

After some investigation one reason for this was that received
multicast traffic confused the aggrecation logic and caused 400 ms
timeouts when receiving multicast frames from AP.

A simple way to fix is to pass only unicast frames for aggregation. This
improves RTT:

100 packets transmitted, 99 received, 1% packet loss, time 99144ms
rtt min/avg/max/mdev = 2.083/13.084/403.390/56.794 ms

Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


Revision tags: v3.1-rc6, v3.1-rc5, v3.1-rc4, v3.1-rc3
# 8af123e8 22-Aug-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Remove unused meta_v2 from ath6kl_data_tx()

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>


# 94e532d1 22-Aug-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix system freeze under heavy data load

Patch "ath6kl: Fix buffer alignment for scatter-gather write" does
memmove for a length (scat_req->scat_list[i].len) which is not the

ath6kl: Fix system freeze under heavy data load

Patch "ath6kl: Fix buffer alignment for scatter-gather write" does
memmove for a length (scat_req->scat_list[i].len) which is not the
actual length of data that is suppossed to be moved. The right
lengh is packet->act_len + HTC_HDR_LENGTH. Using wrong length
for data move during buffer alignment causes system freeze after
the following WARN_ON and sometimes target assert.

WARNING: at drivers/net/wireless/ath/ath6kl/main.c:771 ath6k_credit_distribute+0x196/0x1a0
[<ffffffffa051cf5f>] ath6kl_htc_rxmsg_pending_handler+0x83f/0xe00 [ath6kl]
[<ffffffff8104a743>] ? __wake_up+0x53/0x70
[<ffffffffa0518b18>] ath6kldev_intr_bh_handler+0x188/0x650 [ath6kl]
[<ffffffffa052d316>] ath6kl_sdio_irq_handler+0x36/0x80 [ath6kl]
[<ffffffff81492b3c>] sdio_irq_thread+0xfc/0x360
[<ffffffff81051c52>] ? default_wake_function+0x12/0x20
[<ffffffff81492a40>] ? sdio_claim_irq+0x220/0x220
[<ffffffff81080c36>] kthread+0x96/0xa0
[<ffffffff815b9fb4>] kernel_thread_helper+0x4/0x10
[<ffffffff81080ba0>] ? kthread_worker_fn+0x190/0x190
[<ffffffff815b9fb0>] ? gs_change+0x13/0x13

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 1df94a85 17-Aug-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix buffer alignment for scatter-gather I/O

For non-scatter buffers, there is already a bounce buffer which
takes care of alignment. This patch is influenced by a rough patch of

ath6kl: Fix buffer alignment for scatter-gather I/O

For non-scatter buffers, there is already a bounce buffer which
takes care of alignment. This patch is influenced by a rough patch of
Kalle.

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


# 13e34ea1 16-Aug-2011 Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>

ath6kl: Fix bug in computing AMSU subframe padding

This fixes AMSDU rx, otherwise it fails with the following warnings.

"802.3 AMSDU frame bound check failed"

Signed-off-by

ath6kl: Fix bug in computing AMSU subframe padding

This fixes AMSDU rx, otherwise it fails with the following warnings.

"802.3 AMSDU frame bound check failed"

Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>

show more ...


1234567