forked from mirrors/linux
Refactor struct ehci_regs to avoid accessing beyond the end of
port_status. This change results in no difference in the final
object code.
Avoids several warnings when building with -Warray-bounds:
drivers/usb/host/ehci-brcm.c: In function 'ehci_brcm_reset':
drivers/usb/host/ehci-brcm.c:113:32: warning: array subscript 16 is above array bounds of 'u32[15]' {aka 'unsigned int[15]'} [-Warray-bounds]
113 | ehci_writel(ehci, 0x00800040, &ehci->regs->port_status[0x10]);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/usb/host/ehci.h:274,
from drivers/usb/host/ehci-brcm.c:15:
./include/linux/usb/ehci_def.h:132:7: note: while referencing 'port_status'
132 | u32 port_status[HCS_N_PORTS_MAX];
| ^~~~~~~~~~~
Note that the documentation around this proprietary register was
confusing. If "USB_EHCI_INSNREG00" is at port_status[0x0f], its offset
would be 0x80 (not 0x90). The comments have been adjusted to fix this
apparent typo.
Fixes:
|
||
|---|---|---|
| .. | ||
| audio-v2.h | ||
| audio-v3.h | ||
| audio.h | ||
| c67x00.h | ||
| ccid.h | ||
| cdc-wdm.h | ||
| cdc.h | ||
| cdc_ncm.h | ||
| ch9.h | ||
| chipidea.h | ||
| composite.h | ||
| ehci-dbgp.h | ||
| ehci_def.h | ||
| ehci_pdriver.h | ||
| ezusb.h | ||
| functionfs.h | ||
| g_hid.h | ||
| gadget.h | ||
| gadget_configfs.h | ||
| hcd.h | ||
| input.h | ||
| iowarrior.h | ||
| irda.h | ||
| isp116x.h | ||
| isp1301.h | ||
| isp1362.h | ||
| m66592.h | ||
| musb-ux500.h | ||
| musb.h | ||
| net2280.h | ||
| of.h | ||
| ohci_pdriver.h | ||
| otg-fsm.h | ||
| otg.h | ||
| pd.h | ||
| pd_ado.h | ||
| pd_bdo.h | ||
| pd_ext_sdb.h | ||
| pd_vdo.h | ||
| phy.h | ||
| phy_companion.h | ||
| quirks.h | ||
| r8a66597.h | ||
| r8152.h | ||
| renesas_usbhs.h | ||
| rndis_host.h | ||
| role.h | ||
| serial.h | ||
| sl811.h | ||
| storage.h | ||
| tcpm.h | ||
| tegra_usb_phy.h | ||
| typec.h | ||
| typec_altmode.h | ||
| typec_dp.h | ||
| typec_mux.h | ||
| typec_tbt.h | ||
| uas.h | ||
| ulpi.h | ||
| usb338x.h | ||
| usb_phy_generic.h | ||
| usbnet.h | ||
| xhci-dbgp.h | ||