Re: 2.5.69-mm6: pccard oops while booting

From: Andrew Morton (akpm@digeo.com)
Date: Fri May 16 2003 - 15:29:08 EST


Felipe Alfaro Solana <felipe_alfaro@linuxmail.org> wrote:
>
> Unable to handle kernel paging request at virtual address 50464d59

hm, that address is "YMFP". Please try generating the oops
again with the below patch applied:

 ./sound/pci/ymfpci/ymfpci.c | 8 ++++----
 ./sound/pci/ymfpci/ymfpci_main.c | 22 +++++++++++-----------
 2 files changed, 15 insertions(+), 15 deletions(-)

diff -puN ./sound/pci/ymfpci/ymfpci_main.c~a ./sound/pci/ymfpci/ymfpci_main.c
--- 25/./sound/pci/ymfpci/ymfpci_main.c~a 2003-05-16 13:26:26.000000000 -0700
+++ 25-akpm/./sound/pci/ymfpci/ymfpci_main.c 2003-05-16 13:27:27.000000000 -0700
@@ -1093,7 +1093,7 @@ int __devinit snd_ymfpci_pcm(ymfpci_t *c
 
         if (rpcm)
                 *rpcm = NULL;
- if ((err = snd_pcm_new(chip->card, "YMFPCI", device, 32, 1, &pcm)) < 0)
+ if ((err = snd_pcm_new(chip->card, "1YMFPCI", device, 32, 1, &pcm)) < 0)
                 return err;
         pcm->private_data = chip;
         pcm->private_free = snd_ymfpci_pcm_free;
@@ -1103,7 +1103,7 @@ int __devinit snd_ymfpci_pcm(ymfpci_t *c
 
         /* global setup */
         pcm->info_flags = 0;
- strcpy(pcm->name, "YMFPCI");
+ strcpy(pcm->name, "2YMFPCI");
         chip->pcm = pcm;
 
         snd_pcm_lib_preallocate_pci_pages_for_all(chip->pci, pcm, 64*1024, 256*1024);
@@ -1138,7 +1138,7 @@ int __devinit snd_ymfpci_pcm2(ymfpci_t *
 
         if (rpcm)
                 *rpcm = NULL;
- if ((err = snd_pcm_new(chip->card, "YMFPCI - AC'97", device, 0, 1, &pcm)) < 0)
+ if ((err = snd_pcm_new(chip->card, "3YMFPCI - AC'97", device, 0, 1, &pcm)) < 0)
                 return err;
         pcm->private_data = chip;
         pcm->private_free = snd_ymfpci_pcm2_free;
@@ -1147,7 +1147,7 @@ int __devinit snd_ymfpci_pcm2(ymfpci_t *
 
         /* global setup */
         pcm->info_flags = 0;
- strcpy(pcm->name, "YMFPCI - AC'97");
+ strcpy(pcm->name, "4YMFPCI - AC'97");
         chip->pcm2 = pcm;
 
         snd_pcm_lib_preallocate_pci_pages_for_all(chip->pci, pcm, 64*1024, 256*1024);
@@ -1182,7 +1182,7 @@ int __devinit snd_ymfpci_pcm_spdif(ymfpc
 
         if (rpcm)
                 *rpcm = NULL;
- if ((err = snd_pcm_new(chip->card, "YMFPCI - IEC958", device, 1, 0, &pcm)) < 0)
+ if ((err = snd_pcm_new(chip->card, "5YMFPCI - IEC958", device, 1, 0, &pcm)) < 0)
                 return err;
         pcm->private_data = chip;
         pcm->private_free = snd_ymfpci_pcm_spdif_free;
@@ -1191,7 +1191,7 @@ int __devinit snd_ymfpci_pcm_spdif(ymfpc
 
         /* global setup */
         pcm->info_flags = 0;
- strcpy(pcm->name, "YMFPCI - IEC958");
+ strcpy(pcm->name, "6YMFPCI - IEC958");
         chip->pcm_spdif = pcm;
 
         snd_pcm_lib_preallocate_pci_pages_for_all(chip->pci, pcm, 64*1024, 256*1024);
@@ -1226,7 +1226,7 @@ int __devinit snd_ymfpci_pcm_4ch(ymfpci_
 
         if (rpcm)
                 *rpcm = NULL;
- if ((err = snd_pcm_new(chip->card, "YMFPCI - Rear", device, 1, 0, &pcm)) < 0)
+ if ((err = snd_pcm_new(chip->card, "7YMFPCI - Rear", device, 1, 0, &pcm)) < 0)
                 return err;
         pcm->private_data = chip;
         pcm->private_free = snd_ymfpci_pcm_4ch_free;
@@ -1235,7 +1235,7 @@ int __devinit snd_ymfpci_pcm_4ch(ymfpci_
 
         /* global setup */
         pcm->info_flags = 0;
- strcpy(pcm->name, "YMFPCI - Rear PCM");
+ strcpy(pcm->name, "8YMFPCI - Rear PCM");
         chip->pcm_4ch = pcm;
 
         snd_pcm_lib_preallocate_pci_pages_for_all(chip->pci, pcm, 64*1024, 256*1024);
@@ -1831,7 +1831,7 @@ static void snd_ymfpci_proc_read(snd_inf
 {
         // ymfpci_t *chip = snd_magic_cast(ymfpci_t, private_data, return);
         
- snd_iprintf(buffer, "YMFPCI\n\n");
+ snd_iprintf(buffer, "9YMFPCI\n\n");
 }
 
 static int __devinit snd_ymfpci_proc_init(snd_card_t * card, ymfpci_t *chip)
@@ -2226,12 +2226,12 @@ int __devinit snd_ymfpci_create(snd_card
         chip->reg_area_virt = (unsigned long)ioremap_nocache(chip->reg_area_phys, 0x8000);
         pci_set_master(pci);
 
- if ((chip->res_reg_area = request_mem_region(chip->reg_area_phys, 0x8000, "YMFPCI")) == NULL) {
+ if ((chip->res_reg_area = request_mem_region(chip->reg_area_phys, 0x8000, "AYMFPCI")) == NULL) {
                 snd_ymfpci_free(chip);
                 snd_printk("unable to grab memory region 0x%lx-0x%lx\n", chip->reg_area_phys, chip->reg_area_phys + 0x8000 - 1);
                 return -EBUSY;
         }
- if (request_irq(pci->irq, snd_ymfpci_interrupt, SA_INTERRUPT|SA_SHIRQ, "YMFPCI", (void *) chip)) {
+ if (request_irq(pci->irq, snd_ymfpci_interrupt, SA_INTERRUPT|SA_SHIRQ, "BYMFPCI", (void *) chip)) {
                 snd_ymfpci_free(chip);
                 snd_printk("unable to grab IRQ %d\n", pci->irq);
                 return -EBUSY;
diff -puN ./sound/pci/ymfpci/ymfpci.c~a ./sound/pci/ymfpci/ymfpci.c
--- 25/./sound/pci/ymfpci/ymfpci.c~a 2003-05-16 13:26:26.000000000 -0700
+++ 25-akpm/./sound/pci/ymfpci/ymfpci.c 2003-05-16 13:27:49.000000000 -0700
@@ -122,7 +122,7 @@ static int __devinit snd_card_ymfpci_pro
                         fm_port[dev] = addr;
                 }
                 if (fm_port[dev] >= 0 &&
- (chip->fm_res = request_region(fm_port[dev], 4, "YMFPCI OPL3")) != NULL) {
+ (chip->fm_res = request_region(fm_port[dev], 4, "CYMFPCI OPL3")) != NULL) {
                         legacy_ctrl |= YMFPCI_LEGACY_FMEN;
                         pci_write_config_word(pci, PCIR_DSXG_FMBASE, fm_port[dev]);
                 }
@@ -133,7 +133,7 @@ static int __devinit snd_card_ymfpci_pro
                         mpu_port[dev] = addr;
                 }
                 if (mpu_port[dev] >= 0 &&
- (chip->mpu_res = request_region(mpu_port[dev], 2, "YMFPCI MPU401")) != NULL) {
+ (chip->mpu_res = request_region(mpu_port[dev], 2, "DYMFPCI MPU401")) != NULL) {
                         legacy_ctrl |= YMFPCI_LEGACY_MEN;
                         pci_write_config_word(pci, PCIR_DSXG_MPU401BASE, mpu_port[dev]);
                 }
@@ -146,7 +146,7 @@ static int __devinit snd_card_ymfpci_pro
                 default: fm_port[dev] = -1; break;
                 }
                 if (fm_port[dev] > 0 &&
- (chip->fm_res = request_region(fm_port[dev], 4, "YMFPCI OPL3")) != NULL) {
+ (chip->fm_res = request_region(fm_port[dev], 4, "EYMFPCI OPL3")) != NULL) {
                         legacy_ctrl |= YMFPCI_LEGACY_FMEN;
                 } else {
                         legacy_ctrl2 &= ~YMFPCI_LEGACY2_FMIO;
@@ -160,7 +160,7 @@ static int __devinit snd_card_ymfpci_pro
                 default: mpu_port[dev] = -1; break;
                 }
                 if (mpu_port[dev] > 0 &&
- (chip->mpu_res = request_region(mpu_port[dev], 2, "YMFPCI MPU401")) != NULL) {
+ (chip->mpu_res = request_region(mpu_port[dev], 2, "FYMFPCI MPU401")) != NULL) {
                         legacy_ctrl |= YMFPCI_LEGACY_MEN;
                 } else {
                         legacy_ctrl2 &= ~YMFPCI_LEGACY2_MPUIO;

_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri May 23 2003 - 22:00:25 EST