Skip to content

Commit

Permalink
Investigating why skb is 0 from mt7902_mt76_mcu_get_response #1
Browse files Browse the repository at this point in the history
  • Loading branch information
DarkMatter-999 committed Apr 18, 2024
1 parent 1d73747 commit f29f022
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 5 deletions.
28 changes: 24 additions & 4 deletions mt76/mcu.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,26 @@ struct sk_buff *mt7902_mt76_mcu_get_response(struct mt7902_mt76_dev *dev,
{
unsigned long timeout;

if (!time_is_after_jiffies(expires))
// dump_stack();
dev_info(dev->dev, "mt7902_mt76_mcu_get_response expires: %ld\n", expires);

if (!time_is_after_jiffies(expires)) {
dev_info(dev->dev, "mt7902_mt76_mcu_get_response time expired\n");
return NULL;
}

timeout = expires - jiffies;
dev_info(dev->dev, "mt7902_mt76_mcu_get_response timeout: %ld\n", timeout);

wait_event_timeout(dev->mcu.wait,
(!skb_queue_empty(&dev->mcu.res_q) ||
test_bit(MT76_MCU_RESET, &dev->phy.state)),
timeout);
return skb_dequeue(&dev->mcu.res_q);

struct sk_buff * ret = skb_dequeue(&dev->mcu.res_q);
dev_info(dev->dev, "mt7902_mt76_mcu_get_response ret: %p\n", ret);
dump_stack();
return ret;
}
EXPORT_SYMBOL_GPL(mt7902_mt76_mcu_get_response);

Expand Down Expand Up @@ -81,8 +92,6 @@ int mt7902_mt76_mcu_skb_send_and_get_msg(struct mt7902_mt76_dev *dev, struct sk_
unsigned long expires;
int ret, seq;

dump_stack();

if (ret_skb)
*ret_skb = NULL;

Expand All @@ -104,6 +113,17 @@ int mt7902_mt76_mcu_skb_send_and_get_msg(struct mt7902_mt76_dev *dev, struct sk_
do {
dev_info(dev->dev, "mt7902_mt76_mcu_skb_send_and_get_msg expires: %ld\n", expires);
skb = mt7902_mt76_mcu_get_response(dev, expires);

dev_info(dev->dev, "SKB info: %p\n", skb);
// unsigned char *data_ptr;
// data_ptr = skb->data;
// // dev_info(dev->dev, "mt7902_mt76_mcu_get_response Response : %p\n", skb->data);
//
// for (int i = 0; i < skb->len; i++) {
// dev_info(dev->dev, "%02X ", data_ptr[i]);
// }
// dev_info(dev->dev, "\n");

ret = dev->mcu_ops->mcu_parse_response(dev, cmd, skb, seq);
dev_info(dev->dev, "mt7902_mt76_mcu_skb_send_and_get_msg > mcu_parse_response cmd: %d, ret: %d\n", cmd, ret);
if (!ret && ret_skb)
Expand Down
2 changes: 1 addition & 1 deletion mt76/mt76_connac_mcu.c
Original file line number Diff line number Diff line change
Expand Up @@ -3012,7 +3012,7 @@ int mt7902_mt76_connac2_load_patch(struct mt7902_mt76_dev *dev, const char *fw_n
dev_info(dev->dev, "Entering mt7902_mt76_connac_mcu_patch_sem_ctrl function\n");
sem = mt7902_mt76_connac_mcu_patch_sem_ctrl(dev, true);

dump_stack();
// dump_stack();

switch (sem) {
case PATCH_IS_DL:
Expand Down
7 changes: 7 additions & 0 deletions rebuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,10 @@ sudo dkms install --verbose -m $MODULE_NAME -v $MODULE_VERSION
# Print status
sudo dkms status --verbose -m $MODULE_NAME -v $MODULE_VERSION

# remove kernel modules
sudo rmmod mt7902
sudo rmmod mt7902-common

# reinstall kernel modules
sudo insmod ./mt76/mt7902/mt7902-common.ko
sudo insmod ./mt76/mt7902/mt7902.ko

0 comments on commit f29f022

Please sign in to comment.