Diff for /src/sys/dev/disk/ata/atapi-cd.c between versions 1.8 and 1.9

version 1.8, 2003/08/07 21:16:51 version 1.9, 2003/11/30 20:14:18
Line 132  acdattach(struct ata_device *atadev) Line 132  acdattach(struct ata_device *atadev)
                            sizeof(struct changer)>>8, sizeof(struct changer),                             sizeof(struct changer)>>8, sizeof(struct changer),
                            0, 0, 0, 0, 0, 0 };                             0, 0, 0, 0, 0, 0 };
   
        chp = malloc(sizeof(struct changer), M_ACD, M_NOWAIT | M_ZERO);        chp = malloc(sizeof(struct changer), M_ACD, M_WAITOK | M_ZERO);
         if (chp == NULL) {          if (chp == NULL) {
             ata_prtdev(atadev, "out of memory\n");              ata_prtdev(atadev, "out of memory\n");
             free(cdp, M_ACD);              free(cdp, M_ACD);
Line 148  acdattach(struct ata_device *atadev) Line 148  acdattach(struct ata_device *atadev)
   
             chp->table_length = htons(chp->table_length);              chp->table_length = htons(chp->table_length);
             if (!(cdparr = malloc(sizeof(struct acd_softc) * chp->slots,              if (!(cdparr = malloc(sizeof(struct acd_softc) * chp->slots,
                                  M_ACD, M_NOWAIT))) {                                  M_ACD, M_WAITOK))) {
                 ata_prtdev(atadev, "out of memory\n");                  ata_prtdev(atadev, "out of memory\n");
                 free(chp, M_ACD);                  free(chp, M_ACD);
                 free(cdp, M_ACD);                  free(cdp, M_ACD);
Line 172  acdattach(struct ata_device *atadev) Line 172  acdattach(struct ata_device *atadev)
                                   DEVSTAT_TYPE_CDROM | DEVSTAT_TYPE_IF_IDE,                                    DEVSTAT_TYPE_CDROM | DEVSTAT_TYPE_IF_IDE,
                                   DEVSTAT_PRIORITY_CD);                                    DEVSTAT_PRIORITY_CD);
             }              }
            name = malloc(strlen(atadev->name) + 2, M_ACD, M_NOWAIT);            name = malloc(strlen(atadev->name) + 2, M_ACD, M_WAITOK);
             strcpy(name, atadev->name);              strcpy(name, atadev->name);
             strcat(name, "-");              strcat(name, "-");
             ata_free_name(atadev);              ata_free_name(atadev);
Line 248  acd_init_lun(struct ata_device *atadev) Line 248  acd_init_lun(struct ata_device *atadev)
 {  {
     struct acd_softc *cdp;      struct acd_softc *cdp;
   
    if (!(cdp = malloc(sizeof(struct acd_softc), M_ACD, M_NOWAIT | M_ZERO)))    if (!(cdp = malloc(sizeof(struct acd_softc), M_ACD, M_WAITOK | M_ZERO)))
         return NULL;          return NULL;
     TAILQ_INIT(&cdp->dev_list);      TAILQ_INIT(&cdp->dev_list);
     bufq_init(&cdp->queue);      bufq_init(&cdp->queue);
Line 258  acd_init_lun(struct ata_device *atadev) Line 258  acd_init_lun(struct ata_device *atadev)
     cdp->slot = -1;      cdp->slot = -1;
     cdp->changer_info = NULL;      cdp->changer_info = NULL;
     if (!(cdp->stats = malloc(sizeof(struct devstat), M_ACD,      if (!(cdp->stats = malloc(sizeof(struct devstat), M_ACD,
                              M_NOWAIT | M_ZERO))) {                              M_WAITOK | M_ZERO))) {
         free(cdp, M_ACD);          free(cdp, M_ACD);
         return NULL;          return NULL;
     }      }
Line 673  acdioctl(dev_t dev, u_long cmd, caddr_t Line 673  acdioctl(dev_t dev, u_long cmd, caddr_t
             if (te->address_format == CD_MSF_FORMAT) {              if (te->address_format == CD_MSF_FORMAT) {
                 struct cd_toc_entry *entry;                  struct cd_toc_entry *entry;
   
                toc = malloc(sizeof(struct toc), M_ACD, M_NOWAIT | M_ZERO);                toc = malloc(sizeof(struct toc), M_ACD, M_WAITOK | M_ZERO);
                 bcopy(&cdp->toc, toc, sizeof(struct toc));                  bcopy(&cdp->toc, toc, sizeof(struct toc));
                 entry = toc->tab + (toc->hdr.ending_track + 1 -                  entry = toc->tab + (toc->hdr.ending_track + 1 -
                         toc->hdr.starting_track) + 1;                          toc->hdr.starting_track) + 1;
Line 718  acdioctl(dev_t dev, u_long cmd, caddr_t Line 718  acdioctl(dev_t dev, u_long cmd, caddr_t
             if (te->address_format == CD_MSF_FORMAT) {              if (te->address_format == CD_MSF_FORMAT) {
                 struct cd_toc_entry *entry;                  struct cd_toc_entry *entry;
   
                toc = malloc(sizeof(struct toc), M_ACD, M_NOWAIT | M_ZERO);                toc = malloc(sizeof(struct toc), M_ACD, M_WAITOK | M_ZERO);
                 bcopy(&cdp->toc, toc, sizeof(struct toc));                  bcopy(&cdp->toc, toc, sizeof(struct toc));
   
                 entry = toc->tab + (track - toc->hdr.starting_track);                  entry = toc->tab + (track - toc->hdr.starting_track);
Line 858  acdioctl(dev_t dev, u_long cmd, caddr_t Line 858  acdioctl(dev_t dev, u_long cmd, caddr_t
 #ifndef CD_BUFFER_BLOCKS  #ifndef CD_BUFFER_BLOCKS
 #define CD_BUFFER_BLOCKS 13  #define CD_BUFFER_BLOCKS 13
 #endif  #endif
            if (!(buffer = malloc(CD_BUFFER_BLOCKS * 2352, M_ACD, M_NOWAIT))){            if (!(buffer = malloc(CD_BUFFER_BLOCKS * 2352, M_ACD, M_WAITOK))){
                 error = ENOMEM;                  error = ENOMEM;
                 break;                  break;
             }              }
Line 1340  acd_read_toc(struct acd_softc *cdp) Line 1340  acd_read_toc(struct acd_softc *cdp)
         char name[16];          char name[16];
   
         sprintf(name, "acd%dt%d", cdp->lun, track);          sprintf(name, "acd%dt%d", cdp->lun, track);
        entry = malloc(sizeof(struct acd_devlist), M_ACD, M_NOWAIT | M_ZERO);        entry = malloc(sizeof(struct acd_devlist), M_ACD, M_WAITOK | M_ZERO);
         entry->dev = make_dev(&acd_cdevsw, (cdp->lun << 3) | (track << 16),          entry->dev = make_dev(&acd_cdevsw, (cdp->lun << 3) | (track << 16),
                               0, 0, 0644, name, NULL);                                0, 0, 0644, name, NULL);
         entry->dev->si_drv1 = cdp->dev->si_drv1;          entry->dev->si_drv1 = cdp->dev->si_drv1;
Line 1649  acd_send_cue(struct acd_softc *cdp, stru Line 1649  acd_send_cue(struct acd_softc *cdp, stru
     if ((error = acd_mode_select(cdp, (caddr_t)&param, param.page_length + 10)))      if ((error = acd_mode_select(cdp, (caddr_t)&param, param.page_length + 10)))
         return error;          return error;
   
    buffer = malloc(cuesheet->len, M_ACD, M_NOWAIT);    buffer = malloc(cuesheet->len, M_ACD, M_WAITOK);
     if (!buffer)      if (!buffer)
         return ENOMEM;          return ENOMEM;
     if ((error = copyin(cuesheet->entries, buffer, cuesheet->len)))      if ((error = copyin(cuesheet->entries, buffer, cuesheet->len)))
Line 1711  acd_report_key(struct acd_softc *cdp, st Line 1711  acd_report_key(struct acd_softc *cdp, st
     ccb[9] = length & 0xff;      ccb[9] = length & 0xff;
     ccb[10] = (ai->agid << 6) | ai->format;      ccb[10] = (ai->agid << 6) | ai->format;
   
    d = malloc(length, M_ACD, M_NOWAIT | M_ZERO);    d = malloc(length, M_ACD, M_WAITOK | M_ZERO);
     d->length = htons(length - 2);      d->length = htons(length - 2);
   
     error = atapi_queue_cmd(cdp->device, ccb, (caddr_t)d, length,      error = atapi_queue_cmd(cdp->device, ccb, (caddr_t)d, length,
Line 1775  acd_send_key(struct acd_softc *cdp, stru Line 1775  acd_send_key(struct acd_softc *cdp, stru
     switch (ai->format) {      switch (ai->format) {
     case DVD_SEND_CHALLENGE:      case DVD_SEND_CHALLENGE:
         length = 16;          length = 16;
        d = malloc(length, M_ACD, M_NOWAIT | M_ZERO);        d = malloc(length, M_ACD, M_WAITOK | M_ZERO);
         bcopy(ai->keychal, &d->data[0], 10);          bcopy(ai->keychal, &d->data[0], 10);
         break;          break;
   
     case DVD_SEND_KEY2:      case DVD_SEND_KEY2:
         length = 12;          length = 12;
        d = malloc(length, M_ACD, M_NOWAIT | M_ZERO);        d = malloc(length, M_ACD, M_WAITOK | M_ZERO);
         bcopy(&ai->keychal[0], &d->data[0], 5);          bcopy(&ai->keychal[0], &d->data[0], 5);
         break;          break;
           
     case DVD_SEND_RPC:      case DVD_SEND_RPC:
         length = 8;          length = 8;
        d = malloc(length, M_ACD, M_NOWAIT | M_ZERO);        d = malloc(length, M_ACD, M_WAITOK | M_ZERO);
         d->data[0] = ai->region;          d->data[0] = ai->region;
         break;          break;
   
Line 1850  acd_read_structure(struct acd_softc *cdp Line 1850  acd_read_structure(struct acd_softc *cdp
         return EINVAL;          return EINVAL;
     }      }
   
    d = malloc(length, M_ACD, M_NOWAIT | M_ZERO);    d = malloc(length, M_ACD, M_WAITOK | M_ZERO);
     d->length = htons(length - 2);      d->length = htons(length - 2);
                   
     bzero(ccb, sizeof(ccb));      bzero(ccb, sizeof(ccb));

Removed from v.1.8  
changed lines
  Added in v.1.9