rem: if (e->already_found) { if (e->device == 0x0525 &&e->device == device) continue; }
add: if (e->already_found) continue;
context: extern int pciusb_find_modules(struct pciusb_entries *entries, const char *fpciusbtable, int no_subid) {	fh f;	char buf[2048];	int line;	char *share_path = getenv("SHARE_PATH");	char *fname;	if (!share_path || !*share_path) share_path = "/usr/share";	fname = alloca(strlen(share_path) + sizeof("/ldetect-lst/") + strlen(fpciusbtable)); 	sprintf(fname, "%s/ldetect-lst/%s", share_path, fpciusbtable);	f = fh_open(fname);	for (line = 1; fgets(buf, sizeof(buf) - 1, f.f); line++) {		unsigned short vendor, device, subvendor, subdevice;		char *p = NULL, *q = NULL;		int offset; unsigned int i;		int nb;		if (buf[0]=='#')			continue; // skip comments		nb = sscanf(buf, "0x%hx\t0x%hx\t0x%hx\t0x%hx\t%n", &vendor, &device, &subvendor, &subdevice, &offset);		if (nb != 4) {			nb = sscanf(buf, "0x%hx\t0x%hx\t%n", &vendor, &device, &offset);			if (nb != 2) {				fprintf(stderr, "%s %d: bad line\n", fpciusbtable, line);				continue; // skip bad line			}		}		for (i = 0; i < entries->nb; i++) {			struct pciusb_entry *e = &entries->entries[i];			if (e->already_found) {				if (e->device == 0x0525 &&e->device == device)					continue;	// skip since already found with sub ids			}			if (vendor != e->vendor ||  device != e->device)				continue; // main ids differ			if (nb < 4 && e->module)				continue; // already found a match and this match isn't a subid one (so it's not potentially more precise)			if (nb == 4 && e->subvendor == 0xffff && e->subdevice == 0xffff && !no_subid) {				pciusb_free(entries);				fh_close(&f);				return 0; /* leave, let the caller call again with subids */			}			if (nb == 4 && !(subvendor == e->subvendor && subdevice == e->subdevice))				continue; // subids differ			if (!p) { // only calc text & module if not already done				p = buf + offset + 1;				q = strchr(p, '\t');			}			if (strncmp(p, "unknown", q-p-1))				e->module = strndup(p,q-p-1);			ifree(e->text); /* usb.c set it so that we display something when usbtable doesn't refer that hw*/			e->text = strndup(q+2, strlen(q)-4);			if (e->subvendor != 0xffff && e->subdevice != 0xffff &&				subdevice == e->subdevice && subvendor == e->subvendor)				e->already_found = 1;		}	}	fh_close(&f);	return 1;}