usb: dwc3: debugfs: hold the lock in during mode change
The read and write operation is atomic and we need no locking around this operations. What we need however is a lock that is held which ensures that the content of the DWC3_GCTL has not been changed. With this, the conten may have been change changed after the first but before our write back. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
		
							parent
							
								
									7ae4fc4dc8
								
							
						
					
					
						commit
						c5537ea531
					
				| @ -451,7 +451,6 @@ static ssize_t dwc3_mode_write(struct file *file, | ||||
| 
 | ||||
| 	spin_lock_irqsave(&dwc->lock, flags); | ||||
| 	reg = dwc3_readl(dwc->regs, DWC3_GCTL); | ||||
| 	spin_unlock_irqrestore(&dwc->lock, flags); | ||||
| 
 | ||||
| 	reg &= ~(DWC3_GCTL_PRTCAPDIR(DWC3_GCTL_PRTCAP_OTG)); | ||||
| 
 | ||||
| @ -464,7 +463,6 @@ static ssize_t dwc3_mode_write(struct file *file, | ||||
| 	if (!strncmp(buf, "otg", 3)) | ||||
| 		reg |= DWC3_GCTL_PRTCAP(DWC3_GCTL_PRTCAP_OTG); | ||||
| 
 | ||||
| 	spin_lock_irqsave(&dwc->lock, flags); | ||||
| 	dwc3_writel(dwc->regs, DWC3_GCTL, reg); | ||||
| 	spin_unlock_irqrestore(&dwc->lock, flags); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user