Re: [PATCH v4] staging: r8188eu: fix too many leading tabs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> writes:

On Wed, Sep 28, 2022 at 06:20:28PM +0200, Joash Naidoo wrote:
> But also, shouldn't you just be using the ip_hdr() call > instead of doing
> the crazy cast above?

I would need to investigate and test first before commenting. If a change
had to be made, I believe it will go in a separate patch?

Yes, that would be good to do as a patch series.

thanks,

greg k-h

Hi all

I want to investigate Greg's suggestion to replace the original code's iph cast with ip_hdr(). Looking into the ip_hdr() function it seems it effectively casts skb->head + skb->network_header property (See [1, 2]) whereas the original code casts skb->data + ETH_HLEN [3]. My goal was to use printk statements to see if they're equivalent before making any actual changes.

Could anyone advise to a high level action which will trigger the dhcp_flag_bcast() function, as seen in my patch. I have limited knowledge but I would imagine this function is called when the device broadcasts an IP address request from the DHCP server. I am using dhcpcd as a client and I have tried to manually trigger this action by deleting device's lease file and restarting dhcpcd. Among trying other basic things, I have been unsuccessful at triggering this function.

Looking further up the code at the rtw_xmit() function [4], I learnt the following. Perhaps understanding br_port may also help me.

	void *br_port = NULL;
br_port = rcu_dereference(padapter->pnetdev->rx_handler_data); // <-- this returns 0x00

if (br_port && check_fwstate(pmlmepriv, WIFI_STATION_STATE | WIFI_ADHOC_STATE)) { // <-- false because of br_port, second condition is true res = rtw_br_client_tx(padapter, ppkt); // <-- later calls the dhcp_flag_bcast() See [5]

		if (res == -1) {
			rtw_free_xmitframe(pxmitpriv, pxmitframe);
			return -1;
		}
	}

[1] https://elixir.bootlin.com/linux/v6.0-rc5/source/include/linux/ip.h#L19 [2] https://elixir.bootlin.com/linux/v6.0-rc5/source/include/linux/skbuff.h#L2819 [3] https://elixir.bootlin.com/linux/v6.0-rc5/source/drivers/staging/r8188eu/core/rtw_br_ext.c#L611 [4] https://elixir.bootlin.com/linux/v6.0-rc5/source/drivers/staging/r8188eu/core/rtw_xmit.c#L1670 [5] https://elixir.bootlin.com/linux/v6.0-rc5/source/drivers/staging/r8188eu/core/rtw_xmit.c#L1598

Thank you all for your time and support.

Kind regards,
Joash




[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux