4786l4

Listing 4. Needs caption

/* if the device is not opened, then we clean up right now */
      if (skel->open_count) {
              minor_table[skel->minor] = NULL;
              if (skel->bulk_in_buffer != NULL)
                      kfree (skel->bulk_in_buffer);
              if (skel->bulk_out_buffer != NULL)
                      kfree (skel->bulk_out_buffer);
              if (skel->write_urb != NULL)
                      usb_free_urb (skel->write_urb);
              kfree (skel);
      } else {
              skel->dev = NULL;
              up (&skel->sem);
      }

