Mercurial > illumos > illumos-gate
changeset 4323:c2d671276f97
6556831 System panic when booting up with PC Card inserted
author | rw148561 |
---|---|
date | Fri, 25 May 2007 06:08:28 -0700 |
parents | 1cb616e8399f |
children | 696de332c6cf |
files | usr/src/uts/common/io/cardbus/cardbus_cfg.c usr/src/uts/common/pcmcia/nexus/pcmcia.c |
diffstat | 2 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/io/cardbus/cardbus_cfg.c Fri May 25 06:00:18 2007 -0700 +++ b/usr/src/uts/common/io/cardbus/cardbus_cfg.c Fri May 25 06:08:28 2007 -0700 @@ -1233,6 +1233,7 @@ mem_request->ra_align_mask = phdl->memory_gran - 1; io_request->ra_align_mask = phdl->io_gran - 1; + phdl->res_dip = (dev_info_t *)-1; mem_request->ra_len += cardbus_min_spare_mem; if (mem_request->ra_len) {
--- a/usr/src/uts/common/pcmcia/nexus/pcmcia.c Fri May 25 06:00:18 2007 -0700 +++ b/usr/src/uts/common/pcmcia/nexus/pcmcia.c Fri May 25 06:08:28 2007 -0700 @@ -4517,7 +4517,6 @@ ret->ra_addr_hi = 0; ret->ra_addr_lo = 0; ret->ra_len = 0; - *res_dip = (dev_info_t *)-1; return (DDI_FAILURE); } } @@ -4569,6 +4568,8 @@ int pcmcia_ra_free(dev_info_t *dip, ra_return_t *ret, char *type) { + if (dip == (dev_info_t *)-1) + return (DDI_FAILURE); if (ndi_ra_free(dip, (uint64_t)ret->ra_addr_lo, (uint64_t)ret->ra_len, type, NDI_RA_PASS) == NDI_SUCCESS) { return (DDI_SUCCESS);