Print this page
6639 uhci_qh walker contains whacky boolean logic

*** 22,33 **** /* * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ - #pragma ident "%Z%%M% %I% %E% SMI" - #include <gelf.h> #include <sys/mdb_modapi.h> #include <mdb/mdb_ks.h> --- 22,31 ----
*** 582,593 **** if (wsp->walk_addr == NULL || wsp->walk_addr & HC_END_OF_LIST) { return (WALK_DONE); } /* Make sure next element is a QH. If a TD, stop. */ ! if (! ((((queue_head_t *)wsp->walk_data)->link_ptr) & HC_QUEUE_HEAD) ! == HC_QUEUE_HEAD) { return (WALK_DONE); } /* Strip terminate etc. bits. */ wsp->walk_addr &= QH_LINK_PTR_MASK; --- 580,591 ---- if (wsp->walk_addr == NULL || wsp->walk_addr & HC_END_OF_LIST) { return (WALK_DONE); } /* Make sure next element is a QH. If a TD, stop. */ ! if (((((queue_head_t *)wsp->walk_data)->link_ptr) & HC_QUEUE_HEAD) ! != HC_QUEUE_HEAD) { return (WALK_DONE); } /* Strip terminate etc. bits. */ wsp->walk_addr &= QH_LINK_PTR_MASK;