From mboxrd@z Thu Jan 1 00:00:00 1970 From: linux@arm.linux.org.uk (Russell King - ARM Linux) Date: Fri, 12 Oct 2012 10:03:21 +0100 Subject: alignment faults in 3.6 In-Reply-To: <201210120811.43290.arnd@arndb.de> References: <20121005082439.GF4625@n2100.arm.linux.org.uk> <201210120811.43290.arnd@arndb.de> Message-ID: <20121012090321.GA21164@n2100.arm.linux.org.uk> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Fri, Oct 12, 2012 at 08:11:42AM +0000, Arnd Bergmann wrote: > On Thursday 11 October 2012, M?ns Rullg?rd wrote: > > > But, the IP header is expected to be aligned. > > > > Everything tells the compiler the struct is perfectly aligned. When the > > buggy driver passes a misaligned pointer, bad things happen. > > Would it be appropriate to add a WARN_ON_ONCE() in the alignment fault path > then? If all alignment faults in the kernel are caused by broken drivers, > that would at least give us some hope of finding those drivers while at the > same time not causing much overhead in the case where we need to do the > fixup in the meantime. No. It is my understanding that various IP option processing can also cause the alignment fault handler to be invoked, even when the packet is properly aligned, and then there's jffs2/mtd which also relies upon alignment faults being fixed up.