[pso] [tema3 linux]add_disk del_gendisk

Cristian Sandescu cristi at 1p.ro
Sat May 2 04:35:40 EEST 2009


Buna,

Cum arata functia in care chemi del_gendisk? (Pune un printk sa fii sigura
ca se executa).
Ai grija ca nu cumva sa iesi din initializare cu return fara sa faci cleanup
si atunci sa nu ti se mai cheme niciodata module_exit().
Incearca sa faci iesirea in oglinda fata de incarcare (unregister,
del_gendisk, put_disk, blk_cleanup, close_disk)

Toate bune,
Cristi

> -----Original Message-----
> From: pso-bounces at cursuri.cs.pub.ro [mailto:pso-
> bounces at cursuri.cs.pub.ro] On Behalf Of belea adriana
> Sent: Friday, May 01, 2009 7:27 PM
> To: pso at cursuri.cs.pub.ro
> Subject: [pso] [tema3 linux]add_disk del_gendisk
> 
> 
> Am inceput sa rezolv tema 3 la linux pe masina virtuala veche.
> Cand sa o portez pe noua masina am avut o mare surpriza. Desi pe
> prima masina a iesit, pe noua masina nu reusesc sa implementez
> discul logic.
> 
> coada este implementata ca in laborator
> 
> //adaugare
> ssr->gd = alloc_disk(1);
> if(IS_ERR(ssr->gd)) {
> 	ERRME("unable to allocate disk.");
> 	goto err;
> }
> ssr->gd->major = SSR_MAJOR;
> ssr->gd->first_minor = 0;
> ssr->gd->fops = &ssr_ops;
> ssr->gd->queue = ssr->queue;
> ssr->gd->private_data = ssr;
> snprintf(ssr->gd->disk_name, 32, LOG_DSK_NAME);
> set_capacity(ssr->gd, LOG_DSK_SECTORS);
> add_disk(ssr->gd);
> ........................
> // aici dezaloc
> if (ssr->gd){
> 	del_gendisk(ssr->gd);
> 	put_disk(ssr->gd);
> }
> 
> Cand testez prima oara imi functioneaza fara probleme iar a doua oara
> crapa. Si crapa la add_disk.
> De unde rezulta ca la prima rulare s-a facut prost del_gendisk.
> 
> Dupa o cautare pe google am vazut ca mai multa lume a avut
> probleme cu functiile astea doua.
> 
> http://lkml.indiana.edu/hypermail/linux/kernel/0707.3/0188.html
> 
> 
> 
> 
> 
> _______________________________________________
> pso mailing list
> pso at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso



More information about the pso mailing list