• Ming Lei's avatar
    usb: ehci: remove the 1st wmb in qh_append_tds · 41f05ded
    Ming Lei authored
    According to ehci spec 4.10.2, Advance Queue
    
    	If the fetched qTD has its Active bit set to a zero, the
    	host controller aborts the queue advance and follows the
    	queue head's horizontal pointer to the next schedule data
    	structure.
    
    the 'qtd' will be linked into qh hardware queue after the line
    below
    
    	*dummy = *qtd;
    
    is executed and observed by EHCI HC, but EHCI HC won't have chance to
    fetch the qtd descriptor pointed by 'qtd' in qh_append_tds until the
    line below
    
    	dummy->hw_token = token;	#set Active bit here
    
    is executed by CPU and observed by EHCI HC.
    
    There is already one 'wmb' to order writing to 'dummy'/'qtd' descriptors
    and writing 'token' to 'dummy' descriptor(set Active bit), so the 1st
    wmb is not needed and can be removed.
    Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Signed-off-by: default avatarMing Lei <tom.leiming@gmail.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    41f05ded
ehci-q.c 36.2 KB