Re: [PATCH] alpha: fix broken network checksum

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

 




On Thu, 23 Jan 2014, Mathieu Desnoyers wrote:

> ----- Original Message -----
> > From: "Mikulas Patocka" <mpatocka@xxxxxxxxxx>
> > To: "Mathieu Desnoyers" <mathieu.desnoyers@xxxxxxxxxxxx>, "Richard Henderson" <rth@xxxxxxxxxxx>, "Ivan Kokshaysky"
> > <ink@xxxxxxxxxxxxxxxxxxxx>, "Matt Turner" <mattst88@xxxxxxxxx>, linux-alpha@xxxxxxxxxxxxxxx
> > Cc: "David Miller" <davem@xxxxxxxxxxxxx>, "Oleg Nesterov" <oleg@xxxxxxxxxx>, "Jay Estabrook"
> > <jay.estabrook@xxxxxxxxx>, "Michael Cree" <mcree@xxxxxxxxxxxx>, "Jens Axboe" <axboe@xxxxxxxxx>
> > Sent: Wednesday, January 22, 2014 11:04:33 PM
> > Subject: [PATCH] alpha: fix broken network checksum
> > 
> > The patch 3ddc5b46a8e90f3c9251338b60191d0a804b0d92 breaks networking on
> > alpha (there is a follow-up fix 5cfe8f1ba5eebe6f4b6e5858cdb1a5be4f3272a6,
> > but networking is still broken even with the second patch).
> > 
> > The patch 3ddc5b46a8e90f3c9251338b60191d0a804b0d92 makes
> > csum_partial_copy_from_user check the pointer with access_ok. However,
> > csum_partial_copy_from_user is called also from csum_partial_copy_nocheck
> > and csum_partial_copy_nocheck is called on kernel pointers and it is
> > supposed not to check pointer validity.
> > 
> > This bug results in ssh session hangs if the system is loaded and bulk
> > data are printed to ssh terminal.
> > 
> > This patch fixes csum_partial_copy_nocheck to call set_fs(KERNEL_DS), so
> > that access_ok in csum_partial_copy_from_user accepts kernel-space
> > addresses.
> 
> I see that most architectures implement a csum_partial_copy_generic()
> called from csum_partial_copy_nocheck() for this purpose rather than
> re-using csum_partial_copy_from_user().
> 
> I understand that this fix is the minimal change needed to get things to
> work, so I think it's important to pull it in, but it might be a good
> thing to consider implementing a csum_partial_copy_generic() for alpha
> eventually if performance matters.
> 
> Thanks!
> 
> Mathieu

You could move the common code without the access_ok check to another 
function.

But csum_partial_copy_from_user is called much more often than 
csum_partial_copy_nocheck, so the current code has smaller i-cache 
footprint.

BTW. the ia-64 version of csum_partial_copy_from_user lacks access_ok too.

Mikulas
--
To unsubscribe from this list: send the line "unsubscribe linux-alpha" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Netdev]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux