mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-17 05:43:59 +00:00
Just return if the size of the window is 0. This can happen when the
FDT does not define all ranges possible for a particular node (e.g. PCI). While here, only update the trgt_mem and trgt_io pointers if there's no error. This avoids that we knowingly write an invalid target (= -1).
This commit is contained in:
parent
05917fee1b
commit
e845939dc1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=235934
|
@ -88,6 +88,9 @@ law_enable(int trgt, u_long addr, u_long size)
|
|||
uint32_t bar, sr;
|
||||
int i, law_max;
|
||||
|
||||
if (size == 0)
|
||||
return (0);
|
||||
|
||||
law_max = law_getmax();
|
||||
bar = _LAW_BAR(addr);
|
||||
sr = _LAW_SR(trgt, size);
|
||||
|
@ -168,7 +171,10 @@ law_pci_target(struct resource *res, int *trgt_mem, int *trgt_io)
|
|||
default:
|
||||
rv = ENXIO;
|
||||
}
|
||||
*trgt_mem = *trgt_io = trgt;
|
||||
if (rv == 0) {
|
||||
*trgt_mem = trgt;
|
||||
*trgt_io = trgt;
|
||||
}
|
||||
return (rv);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue