lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sat, 18 May 2019 23:58:02 +0200
From:   Petr Štetiar <ynezz@...e.cz>
To:     Octavio Alvarez <octallk1@...arezp.org>
Cc:     Mirko Lindner <mlindner@...vell.com>,
        Stephen Hemminger <stephen@...workplumber.org>,
        netdev@...r.kernel.org
Subject: Re: PROBLEM: [1/2] Marvell 88E8040 (sky2) stopped working

Hi Octavio,

> PROBLEM: [1/2] Marvell 88E8040 (sky2) stopped working

I'm sorry, that I've ruined your day.

> Linux version 5.1.0-12511-g72cf0b07418a (alvarezp@...arezp-samsung)

What do I need to do/apply in order to get the same source tree with
72cf0b07418a hash? I'm not able to find that commit.

> [    1.447809] BUG: kernel NULL pointer dereference, address:
> 0000000000000000

Interesting.

> [    1.448476] RIP: 0010:sky2_init_netdev+0x221/0x2e0 [sky2]

 gdb drivers/net/ethernet/marvell/sky2.o
 >>> l *sky2_init_netdev+0x221
 0x828a is in sky2_init_netdev (./include/linux/etherdevice.h:124).
 119	 * By definition the broadcast address is also a multicast address.
 120	 */
 121	static inline bool is_multicast_ether_addr(const u8 *addr)
 122	{
 123	#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
 124		u32 a = *(const u32 *)addr;
 125	#else
 126		u16 a = *(const u16 *)addr;
 127	#endif
 128	#ifdef __BIG_ENDIAN

> --- a/drivers/net/ethernet/marvell/sky2.c
> +++ b/drivers/net/ethernet/marvell/sky2.c
> @@ -4808,7 +4808,7 @@ static struct net_device *sky2_init_netdev(struct
> sky2_hw *hw, unsigned port,
>          * 2) from internal registers set by bootloader
>          */
>         iap = of_get_mac_address(hw->pdev->dev.of_node);
> -       if (iap)
> +       if (!IS_ERR(iap))

I'm just shooting out of the blue, as I don't have currently any rational
explanation for that now, but could you please change the line above to
following:

          if (!IS_ERR_OR_NULL(iap))

try again and report back? Thanks!

-- ynezz

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ