snd_pcm_lib_preallocate_free_for_all() is called from snd_pcm_free() just
after calling the private_free routine.  So there should be no need to call
it in driver's private_free routine.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
        .pointer        = snd_at73c213_pcm_pointer,
 };
 
-static void snd_at73c213_pcm_free(struct snd_pcm *pcm)
-{
-       struct snd_at73c213 *chip = snd_pcm_chip(pcm);
-       if (chip->pcm) {
-               snd_pcm_lib_preallocate_free_for_all(chip->pcm);
-               chip->pcm = NULL;
-       }
-}
-
 static int __devinit snd_at73c213_pcm_new(struct snd_at73c213 *chip, int device)
 {
        struct snd_pcm *pcm;
                goto out;
 
        pcm->private_data = chip;
-       pcm->private_free = snd_at73c213_pcm_free;
        pcm->info_flags = SNDRV_PCM_INFO_BLOCK_TRANSFER;
        strcpy(pcm->name, "at73c213");
        chip->pcm = pcm;