Print this page
5253 kmem_alloc/kmem_zalloc won't fail with KM_SLEEP
5254 getrbuf won't fail with KM_SLEEP

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/intel/io/dktp/dcdev/dadk.c
          +++ new/usr/src/uts/intel/io/dktp/dcdev/dadk.c
↓ open down ↓ 733 lines elided ↑ open up ↑
 734  734                   * copyin header ....
 735  735                   * yields head number and buffer address
 736  736                   */
 737  737                  if (ddi_copyin((caddr_t)arg, STRUCT_BUF(adh), STRUCT_SIZE(adh),
 738  738                      flag))
 739  739                          return (EFAULT);
 740  740                  head = STRUCT_FGET(adh, head);
 741  741                  if (head < 0 || head >= dadkp->dad_phyg.g_head)
 742  742                          return (ENXIO);
 743  743                  secbuf = kmem_zalloc(NBPSCTR, KM_SLEEP);
 744      -                if (!secbuf)
 745      -                        return (ENOMEM);
      744 +
 746  745                  bp = getrbuf(KM_SLEEP);
 747      -                if (!bp) {
 748      -                        kmem_free(secbuf, NBPSCTR);
 749      -                        return (ENOMEM);
 750      -                }
 751  746  
 752  747                  bp->b_edev = dev;
 753  748                  bp->b_dev  = cmpdev(dev);
 754  749                  bp->b_flags = B_BUSY;
 755  750                  bp->b_resid = 0;
 756  751                  bp->b_bcount = NBPSCTR;
 757  752                  bp->b_un.b_addr = (caddr_t)secbuf;
 758  753                  bp->b_blkno = head; /* I had to put it somwhere! */
 759  754                  bp->b_forw = (struct buf *)dadkp;
 760  755                  bp->b_back = (struct buf *)DCMD_GETDEF;
↓ open down ↓ 923 lines elided ↑ open up ↑
1684 1679  }
1685 1680  
1686 1681  static int
1687 1682  dadk_rmb_ioctl(struct dadk *dadkp, int cmd, intptr_t arg, int flags, int silent)
1688 1683  
1689 1684  {
1690 1685          struct buf *bp;
1691 1686          int err;
1692 1687          struct cmpkt *pktp;
1693 1688  
1694      -        if ((bp = getrbuf(KM_SLEEP)) == NULL) {
1695      -                return (ENOMEM);
1696      -        }
     1689 +        bp = getrbuf(KM_SLEEP);
1697 1690          pktp = dadk_pktprep(dadkp, NULL, bp, dadk_rmb_iodone, NULL, NULL);
1698 1691          if (!pktp) {
1699 1692                  freerbuf(bp);
1700 1693                  return (ENOMEM);
1701 1694          }
1702 1695          bp->b_back  = (struct buf *)arg;
1703 1696          bp->b_forw  = (struct buf *)dadkp->dad_flcobjp;
1704 1697          pktp->cp_passthru = (opaque_t)(intptr_t)silent;
1705 1698  
1706 1699          err = dadk_ctl_ioctl(dadkp, cmd, (uintptr_t)pktp, flags);
↓ open down ↓ 134 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX