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]
Message-ID: <1FB5E1D5CA062146B38059374562DF7212DF127D@TK5EX14MBXC130.redmond.corp.microsoft.com>
Date:	Mon, 12 Oct 2009 20:44:06 +0000
From:	Haiyang Zhang <haiyangz@...rosoft.com>
To:	Greg KH <gregkh@...e.de>, Hank Janssen <hjanssen@...rosoft.com>
CC:	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"Tom Hanrahan" <hanrahat@...rosoft.com>,
	Hashir Abdi <habdi@...rosoft.com>
Subject: RE: [patch] Staging: hv: Fix vmbus load hang caused by wrong data
 packing

> Can you figure out why?  What is the output of gcc for both ways?
There are no build errors in either ways, I think it may be a bug in gcc handing __attribute__((packed)).

> Can you show what is fixed by this change?
Before the fix:
The command "insmod hv_vmbus.ko" hangs. 
Root cause: The message data sent from Linux guest to HyperV host were not correctly packed and not recognized by HyperV host. So, the host doesn't acknowledge that the vmbus channel is set up. Then, the guest keeps on waiting for the event and hangs the insmod command.

After the fix:
The command "insmod hv_vmbus.ko" completes successfully with vmbus module loaded.

> Also note that #pragma packed is not supported by older versions of gcc,
> so I don't think that it would work at all on some compiler versions
> that are still legal to use for the kernel.  But I'm not quite sure when
> it was added, so I might be wrong.
This pragma was used in older distro, such as SLES10 (kernel 2.6.16) without any problem.

>From your newer email:
> I also note that you are packing more structures here with this patch than the code before the patch had.  Could that be the 
> issue here?  The additional structures are ones that should be packed instead?
No, the extra packed structures are not required for this bug fix. Just to make sure any future struct related to message is packed, so I put the pack() around the entire file.

Thanks,

- Haiyang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ